gpt4 book ai didi

php - Laravel 属于为可执行查询添加双引号

转载 作者:可可西里 更新时间:2023-11-01 10:45:17 31 4
gpt4 key购买 nike

我正在使用 Laravel 与 MYSql 和 MongoDB 连接。在 MYSQL 和 MongoDB 之间使用 belongsto Eloquent ORM 关系时,出现以下错误:

"Call to a member function prepare() on null"

Mysql模型:Audios.php

class Audios extends Model
{
protected $table = 'audios';

public function getAudioPlaylist()
{
return $this->hasMany('AudioPlaylists:;class','id','audio_id');
}
}

Mongo 模型:AudioPlaylist.php

use Jenssegers\Mongodb\Eloquent\Model as MongoModel;

class AudioPlaylist extends MongoModel
{
protected $collection = 'audio_playlists';
protected $connection = 'mongodb';

public function playlistAudioTracks()
{
return $this->belongsTo(Audios::class, 'audio_id', 'id');
}
}

Mongo 集合:

{
"_id" : ObjectId("5c2f519368c5f214022c4102"),
"playlist_id" : "5c2cace668c5f2382e5ef464",
"audio_id" : 1,
"updated_at" : ISODate("2019-01-04T12:29:07Z"),
"created_at" : ISODate("2019-01-04T12:29:07Z")
}

音频表包含相关的 id 1. Audio 模型上的 hasMany 关系工作正常,反之则不起作用.

当通过在日志文件中记录查询进行调试时,对 belongsTo 的查询如下所示,当在 PhpMyAdmin 中使用相同的查询时,它抛出语法错误:

[2019-01-04 18:41:13] production.INFO: select audios.*,audios.id as is_favourite from "audios" where "audios"."id" in (?) and "is_active" = ?

最佳答案

经过漫长的一天的斗争,终于得到了解决方案。解决方案是添加,

$connection  = 'mysql';

在 Audios.php 模型中,由于 AudioPlaylists 模型中的关系 belongsTo 尝试使用 MongoDB 实例构建查询,因为缺少连接属性。

关于php - Laravel 属于为可执行查询添加双引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54040068/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com