搜索 laravel 8 中的关系
searching with relationship in laravel 8
我有一个Category模型,和product模型,它们之间有关系...所以现在我想做一个搜索,当用户写类别名称时,我需要return 此类别中的所有产品,表格和关系都是正确的....我试过这种方法,但没有用:
其中($q)是输入文本名称:-
$catSearches = Category::whereHas('products', function ($query) use ($q){
$query->where('name', 'like', '%'.$q.'%');
})
->with(['products' => function($query) use ($q){
$query->where('name', 'like', '%'.$q.'%');
}])->get();
也试过这种方法,同样的问题:
$catSearches = Category::with('products')->where('name', 'LIKE', "%{$q}%" )->get();
第二种格式是正确的,但没有 {}
$catSearches = Category::with('products')->where('name', 'LIKE', '%'.$q.'%' )->get();
如果您只需要产品(没有类别)
$products = Products::whereHas('category', function($categoryQuery) use ($q){
$categoryQuery->where('name', 'LIKE', '%'.$q.'%' );
})->get();
如果您只想 return 产品而不是类别内的产品,则需要采用其他方式。
$products = Product::whereHas('category', function ($q) use ($search) {
$q->where('name', 'LIKE', '%' . $search . '%');
})->get();
它将 return 所有匹配类别名称的产品。
我有一个Category模型,和product模型,它们之间有关系...所以现在我想做一个搜索,当用户写类别名称时,我需要return 此类别中的所有产品,表格和关系都是正确的....我试过这种方法,但没有用:
其中($q)是输入文本名称:-
$catSearches = Category::whereHas('products', function ($query) use ($q){
$query->where('name', 'like', '%'.$q.'%');
})
->with(['products' => function($query) use ($q){
$query->where('name', 'like', '%'.$q.'%');
}])->get();
也试过这种方法,同样的问题:
$catSearches = Category::with('products')->where('name', 'LIKE', "%{$q}%" )->get();
第二种格式是正确的,但没有 {}
$catSearches = Category::with('products')->where('name', 'LIKE', '%'.$q.'%' )->get();
如果您只需要产品(没有类别)
$products = Products::whereHas('category', function($categoryQuery) use ($q){
$categoryQuery->where('name', 'LIKE', '%'.$q.'%' );
})->get();
如果您只想 return 产品而不是类别内的产品,则需要采用其他方式。
$products = Product::whereHas('category', function ($q) use ($search) {
$q->where('name', 'LIKE', '%' . $search . '%');
})->get();
它将 return 所有匹配类别名称的产品。