【发布时间】:2015-02-08 06:34:10
【问题描述】:
问题:我只想在客户已经下订单的情况下获得当年的客户。客户和订单位于两个单独的数据库中(这不能更改)。这些关系都已设置并正常工作,但是当我尝试以下操作时,我不断收到 SQL 错误,因为它试图在“客户”数据库中搜索“订单”。在这种情况下是否有强制 Laravel 使用正确的数据库?
$customers = $customers->whereHas('orders', function($query){
$query->where('academic_year_id', '=', $this->current_academic_year->id);
});
$customers = $customers->orderBy('DFKEY','ASC')->get();
订购型号:
public function customer()
{
return $this->belongsTo('Customer','dfkey');
}
客户模型:
protected $connection = 'mysql2';
public function orders()
{
return $this->hasMany('Order','dfkey','DFKEY');
}
提前致谢!
【问题讨论】:
-
听起来关系有问题,orders 是不是与客户的 belongsToMany 关系?您需要 Customer 模型中的 orders 函数,另外我认为您需要最后的 get 语句才能实际返回结果
-
感谢您的回复,我已经更详细地更新了我原来的问题...
-
对不起,我误读了您的问题,而不是两个单独的数据库,我出于某种原因读取了两个单独的表,我责怪睡眠
-
如果您还没有找到解决该问题的方法,但似乎在客户模型中将数据库名称添加到表名称之前似乎可以解决问题:stackoverflow.com/questions/23457561/…
标签: php laravel laravel-4 eloquent relationship