如何在PHP服务器(Laravel框架)中获取Tally Prime数据
在Laravel中获取Tally数据记录的解决方案
一、重新配置CData Connect Server的Tally虚拟数据库
- 登录CData Connect Server后台,进入Connections页面,点击「Add Connection」选择Tally驱动
- 配置Tally连接参数:
- 填写Tally服务地址(默认
http://localhost:9000) - 选择要访问的Tally公司数据文件
- 点击「Test Connection」验证连接有效性,保存配置
- 填写Tally服务地址(默认
- 创建虚拟MySQL库:进入Databases页面,点击「Add Database」,关联刚才的Tally连接,设置数据库名(如
tally_db),完成后记录生成的MySQL连接信息(主机、端口、账号、密码)
二、Laravel中配置Tally数据库连接
- 修改项目根目录的
.env文件,添加Tally数据库环境变量:
DB_TALLY_HOST=CData服务主机地址 DB_TALLY_PORT=3306 DB_TALLY_DATABASE=tally_db DB_TALLY_USERNAME=CData账号 DB_TALLY_PASSWORD=CData密码
- 编辑
config/database.php,在connections数组中新增Tally连接配置:
'tally' => [ 'driver' => 'mysql', 'host' => env('DB_TALLY_HOST'), 'port' => env('DB_TALLY_PORT'), 'database' => env('DB_TALLY_DATABASE'), 'username' => env('DB_TALLY_USERNAME'), 'password' => env('DB_TALLY_PASSWORD'), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, ],
三、在Laravel中查询Tally数据
方式1:使用DB门面直接查询
use Illuminate\Support\Facades\DB; public function fetchTallyRecords() { // 替换为你需要查询的Tally表名 $records = DB::connection('tally')->select('SELECT * FROM Ledgers'); return response()->json($records); }
方式2:使用Eloquent模型
创建对应模型并指定连接:
namespace App\Models; use Illuminate\Database\Eloquent\Model; class TallyLedger extends Model { protected $connection = 'tally'; protected $table = 'Ledgers'; // 对应CData生成的虚拟表名 }
在控制器中调用:
$ledgers = TallyLedger::all();
四、常见问题排查
- 确认CData Connect Server服务正常运行,且Laravel服务器能ping通CData主机
- 检查
.env中的连接参数是否与CData生成的信息完全一致 - 验证Tally服务处于运行状态,CData连接的Tally地址/端口无错误
- 检查CData用户权限,确保该账号能访问目标Tally连接和虚拟数据库
内容的提问来源于stack exchange,提问作者Pratiksha
相关产品推荐
相关产品推荐

