0
私は私のコードLaravel 5.3wherehasとjoinを同時に使用するにはどうすればよいですか?
を使用するが、このようなものです:
public function getWishlist($param)
{
$num = 20;
$q = $param['q'];
$location = $param['location'];
$result = $this->product_repository->whereHas('favorites', function ($query) use($q, $location) {
$query->where('favorites.user_id', '=', auth()->user()->id)
->where('products.status', '=', 1);
if($q)
$query->where('products.name', 'like', "%$q%");
})
->join('stores', 'stores.id', '=', 'products.store_id');
if($location)
$result->where('stores.address', 'like', "%$location%");
if($q)
$result->where('products.name', 'like', "%$q%")
->where('stores.address', 'like', "%$q%", 'or');
dd($result->toSql());
// ->paginate($num);
return $result;
}
実行し、結果が空になると
はwherehasだと同時に
を動作しない参加するには任意の解決策はあります私の問題を解決する?
'参加する()あなたは、高度な使用することができると思うが、' 'whereHas()'と正常に動作します。 'toSql()'メソッドを使ってSQLクエリをチェックする必要があります。問題のデバッグに役立つかもしれません。 –
@Gumit Gupta、私はこれを試しています: 'dd($ result-> toSql());'。エラーがあります: 'メソッドtoSqlは存在しません。 ' –
' paginate() 'メソッドを呼び出す前に' toSql() 'を試してください。 –