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
,然后从中运行关系。ie
foreach
他的加入也缺少一个“=”当然,这是我的错误(再次-我认为Laravel lol中有一个bug),没有“=”仍然有效我认为它可以,但不是100%的家伙,你能告诉我为什么在这个查询之后我无法从$offers访问其他模型吗?我正在尝试$offers->people,但它不起作用
$offers
是结果的集合。如果您想访问关系,您需要遍历每个
$offer
,然后从中运行关系。ie
foreach