Я успешно создал множество функций, используя where
запрос на Laravel 5.3, но на этот раз происходит что-то странное.Laravel 5.3 Возвращение? on Where Eloquent
public function show($id){
$artikel = Artikel::select('artikel.*','kategori.kategori_id','kategori.kategori_nama','users.name','users.user_photo','users.biodata')
->join('kategori','artikel.kategori_id','=','kategori.kategori_id')
->join('users','user_id','=','id')
->orderBy('view','desc')
->find($id);
$kategori = Kategori::all();
$sub = Artikel::select('kategori_id')->where('artikel_id',$id)->toSql();
dd($sub);
$related = Artikel::where('kategori_id','=',$sub)
->get();
dd($related);
if($artikel == null){
$artikel = new Artikel;
$artikel->pesan=0;
foreach ($artikel as $post) {
$this->putInCache($post->slug, $post, 'artikel');
}
return view('artikel.show')->with('artikel',$artikel)->with('kategori',$kategori);
}
$artikel->view+=1;
$artikel->save();
return view('artikel.show')->with('artikel',$artikel)->with('kategori',$kategori)->with('related',$related);
}
Метод выводит ошибку на линии 8. dd()
на линии 9 возвращается
"select `kategori_id` from `artikel` where `artikel_id` = ?"
Я попытался изменить запрос
$sub = Artikel::select('kategori_id')->where('artikel_id','=',1)->toSql();
И гораздо больше, но все равно получена ошибка. Эта строка вернула ?
на where where. Пожалуйста, помогите мне.
Спасибо!
UPADTE 1
Теперь код выглядит так:
$related = Artikel::where('kategori_id','=','select kategori_id from artikel where artikel_id = 1')
->get();
и результат возвращается пустая коллекция.
Коллекция {# 272 ▼ #items: [] }
Какова конкретная ошибка/исключение, которое вы получаете? – phaberest
@ Danu Akbar ** toSql() ** не будет возвращать полный запрос из-за ** bind parameter **. используйте '-> get()' вместо '-> toSql()'. Это покажет вам результат. – Manish
@phaberest, что точно –