Laravel 5.1(Eloquent)使用关系附加或分离不起作用

时间:2016-01-18 03:01:01

标签: php mysql database laravel

我在使用Laravel 5.1的Eloquent时遇到了问题。我有2个数据库,2个模型类使用不同的数据库(不是默认数据库)。 它适用于简单的CRUD,但是当我使用关系时,它会导致错误。

$list->users()->attach($nListUser->id, [
                            'entered' => $user->createdDate,
                            'modified' => date('Y-m-d H:m:s'),
                            ]);

或者

$list->users()->detach($nListUser->id);

错误代码是

  

SQLSTATE [42S02]:找不到基表或视图:1146表   'sampledb.listuser'不存在(SQL:insert   进入listuserenteredlistidmodifieduserid)   价值观(2012-06-17 18:34:58,52275,2016-01-18 02:01:46,6))

这是我的模型类文件。

class ListUser extends Model
{

    protected $connection = 'listdbconnection';
    protected $table = 'listuser';

    public $timestamps = false;

}
class PList extends Model
{
    protected $connection = 'listdbconnection';
    protected $table = 'list';

    public $timestamps = false;

    public function users(){
        return $this->belongsToMany('App\Model\User', 'listuser', 'userid', 'listid');
    }
}

尽管我在上面设置了连接名称,但它仍然在默认数据库中找到该表。很明显,Eloquent正在研究默认的关系数据库。 有没有人解决这个问题?我错了还是这真的是Laravel 5.1 Eloquent的错?

1 个答案:

答案 0 :(得分:0)

终于找到了原因。 雄辩很精彩。我在belongsToMany参数中指定的模型类是错误的。 实际上,如下所示。

return $this->belongsToMany('App\Model\LUser', 'listuser', 'userid', 'listid');

我推荐Eloquent因为你可以在Laravel之外使用它。也许,是Web服务开发的不错选择。