Php Laravel 5.2返回空数组的关系
我有两个模型,需要根据某些条件提取并过滤结果 手机:身份证,姓名,品牌 报价:id、modelid、retailerid 我的模型设置如下:Php Laravel 5.2返回空数组的关系,php,laravel,Php,Laravel,我有两个模型,需要根据某些条件提取并过滤结果 手机:身份证,姓名,品牌 报价:id、modelid、retailerid 我的模型设置如下: // Mobile public function offer() { return $this->hasMany('App/Offer','modelid','id'); } // Offer public function mobile() { return $this->belongsTo('App/Mobile','
// Mobile
public function offer()
{
return $this->hasMany('App/Offer','modelid','id');
}
// Offer
public function mobile()
{
return $this->belongsTo('App/Mobile','modelid');
}
当我跑的时候
$offers = App\Mobile::with(['offer'=>function($q){
$q->orderBy('phonecost','asc')->first();
}])->orderBy('Popularity','desc')->paginate(10);
我在报价关系中得到一个空数组首先调试您的laravel查询,看看实际生成的SQL是什么,这样您就可以找出哪里出错了。它只是一起忽略关系,而不是在所有位置查询另一个表。因此,我认为在
with()
回调中使用first()
是不正确的first()
执行一个查询,但您正在处理急切加载。您可以像这样约束加载:。更不用说使用first()
会得到一个单一的结果。嗯,我不认为这是问题所在,即使我放弃了函数,只使用了('offer'))它仍然忽略关系,只查询手机表您的外键是offer
函数中的modelid
,但在mobile
函数中,它看起来像是mobileid
。从调试您的laravel查询开始,查看实际生成的SQL是什么,这样您就可以找出哪里出错了。它只是一起忽略关系,而不是在所有位置查询另一个表。因此,我认为在with()
回调中使用first()
是不正确的first()
执行一个查询,但您正在处理急切加载。您可以像这样约束加载:。更不用说使用first()
会得到一个单一的结果。嗯,我不认为这是问题所在,即使我放弃了函数,只使用了('offer'))它仍然忽略关系,只查询手机表您的外键在offer
函数中是modelid
,但在mobile
函数中,它看起来像是mobileid
。