Laravel orderBy不存在
我正在做一个简单的查询Laravel orderBy不存在,laravel,Laravel,我正在做一个简单的查询 $offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id') ->join('specialities', 'offer_speciality.speciality_id', 'specialities.id') ->when($speciality, function($query, $speciali
$offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id')
->join('specialities', 'offer_speciality.speciality_id', 'specialities.id')
->when($speciality, function($query, $speciality) {
return $query->where('specialities.number', $speciality)->get();
})
->orderBy('created_at','desc')->paginate(9);
然后是错误:
方法Illumb\Database\Eloquent\Collection::orderBy没有
存在
我不确定是什么?在运行
->get()
时,将返回一个集合,并且->orderBy()
不是一个可以在文档中列出所有可用函数的集合上运行的函数
您的->get()
在您的->orderBy()
之前就有了您的->get()
,这是行不通的。另外,您不需要像使用分页(9)一样使用->get()
你需要:
$offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id')
->join('specialities', 'offer_speciality.speciality_id', '=', 'specialities.id')
->when($speciality, function($query, $speciality) {
return $query->where('specialities.number', $speciality)
})
->orderBy('created_at','desc')->paginate(9)
在运行
->get()
时,将返回一个集合,并且->orderBy()
不是一个可以在文档中列出所有可用函数的集合上运行的函数
您的->get()
在您的->orderBy()
之前就有了您的->get()
,这是行不通的。另外,您不需要像使用分页(9)一样使用->get()
你需要:
$offers = Offer::join('offer_speciality', 'offers.id', 'offer_speciality.offer_id')
->join('specialities', 'offer_speciality.speciality_id', '=', 'specialities.id')
->when($speciality, function($query, $speciality) {
return $query->where('specialities.number', $speciality)
})
->orderBy('created_at','desc')->paginate(9)
他的加入也缺少了一个“=”当然,这是我的错误(再次-我认为Laravel lol中有一个bug),没有“=”仍然有效。我认为它有效,但不是100%的家伙,你能告诉我为什么在这个查询之后,我无法从$offers访问其他模型吗?我正在尝试$offers->people,但它不起作用
$offers
是结果的集合。如果您想访问关系,您需要遍历每个$offer
,然后从中运行关系。ieforeach
他的加入也缺少一个“=”当然,这是我的错误(再次-我认为Laravel lol中有一个bug),没有“=”仍然有效我认为它可以,但不是100%的家伙,你能告诉我为什么在这个查询之后我无法从$offers访问其他模型吗?我正在尝试$offers->people,但它不起作用$offers
是结果的集合。如果您想访问关系,您需要遍历每个$offer
,然后从中运行关系。ieforeach