Laravel-未定义的属性:stdClass-搜索查询



所以我有这个带有搜索功能的Laravel汽车项目。我使用DB::table()查询进行搜索,在添加model relationship之前,它一直工作正常。我来解释一下,这是我的代码。

这是我的搜索motoopremapretraga功能:

/**
* Update the specified resource in storage.
*
* @param  IlluminateHttpRequest  $request
*/
public function motoopremapretraga(Request $request)
{
$autoQuery = DB::table('motoopremas');
//pretraga - marka i model
foreach ($request->only(['marka', 'model']) as $term => $value) {
if (empty($value)) {
continue;
}
$autoQuery->where($term, $value);
}
//pretraga - cijena od/do whereBetween
if (
$cijenaod = (int)$request->input('cijenaod')
&& $cijenado = (int)$request->input('cijenado')
) {
$autoQuery->whereBetween('cijena', [(int)$cijenaod = $request->input('cijenaod'), (int)$cijenado = $request->input('cijenado')]);
}
//pretraga - vrsta cijene
if ($vrsta_cijene = $request->get('vrsta_cijene')) {
$autoQuery->where('vrsta_cijene', $vrsta_cijene);
}
//pretraga - grupa opreme
if ($grupa_opreme = $request->get('grupa_opreme')) {
$autoQuery->where('grupa_opreme', $grupa_opreme);
}
//pretraga - djelovi
if ($tip = $request->get('tip')) {
$autoQuery->where('tip', $tip);
}
//pretraga - ostecenje
if ($ostecenje = $request->get('ostecenje')) {
$autoQuery->where('ostecenje', $ostecenje);
}
//pretraga - zamjena
if ($zamjena = $request->get('zamjena')) {
$autoQuery->where('zamjena', $zamjena);
}
//pretraga - stanje
if ($stanje = $request->get('stanje')) {
$autoQuery->where('stanje', $stanje);
}
//vracanje rezultata
$automobili = $autoQuery->get();
return view('site.motooprema.pretraga')->with('automobili', $automobili);
}

您可以看到,我使用DB::table('motoopremas')来查找搜索结果,最后仅使用$automobili = autoQuery->get();来指定刀片变量。

好吧,这是我的results blade view,非常简单,只是为了显示是否一切正常:

@foreach($automobili->where('deleted_at', null) as $auto)
{{$auto->naslov}}
@endforeach

一切都很好,但当我从Motooprema.php模型中添加我的关系时,如下所示:

@foreach($automobili->where('deleted_at', null) as $auto)
<!-- this is my relationship -->
@if($auto->sifraMotoopremaaktivnosts->first()->status == 1)
{{$auto->naslov}}
@endif
@endforeach

它给我错误,如下所示:

Undefined property: stdClass::$sifraMotoopremaaktivnosts

这是我的Motooprema.php模型,具有sifraMotoopremaaktivnosts关系:

public function sifraMotoopremaaktivnosts()
{
return $this->hasMany(Motoopremaaktivnost::class, 'sifra_id', 'id');
}

我不知道我做错了什么,我需要进行搜索,而这段关系只是显示激活的汽车帖子。我该怎么办?

DB::table不返回Motooprema类。

因此,您不能使用关系。($auto->sifraMotoopremaaktivnosts…(

$autoQuery = Motooprema::query();替换$autoQuery = DB::table('motoopremas');行,它应该返回一个Motooprema的实例。

最新更新