Laravel 拉威尔搜索关系在哪里
我正在尝试对产品进行搜索,但它不会返回任何结果。我怀疑这和whereHas函数有关,但我就是搞不清楚。这是我的密码: 我的亲属: 类别模型:Laravel 拉威尔搜索关系在哪里,laravel,search,Laravel,Search,我正在尝试对产品进行搜索,但它不会返回任何结果。我怀疑这和whereHas函数有关,但我就是搞不清楚。这是我的密码: 我的亲属: 类别模型: class Categories extends Eloquent { public function product() { return $this->hasMany('Products')->orderBy('name'); } } 产品型号: class Products extends El
class Categories extends Eloquent {
public function product()
{
return $this->hasMany('Products')->orderBy('name');
}
}
产品型号:
class Products extends Eloquent {
public function category()
{
return $this->belongsTo('Category')->orderBy('name');
}
}
我的搜索功能:
public function search()
{
$search = Input::get('search');
$result = Products::where('name', 'LIKE', '%'. $search .'%')->get();
if ($result->first()) {
return View::make('groceries.index')
->with('categories', Categories::with('product')->orderBy('name', 'asc')
->whereHas('product', function($query) use ($search)
{
$query->where('name', 'LIKE', '%'.$search.'%');
}));
}
}
他认为:
@foreach ($categories as $category)
//do stuff
@foreach ($category->product as $products)
//Show results
@endforeach
@endforeach
您必须调用get()
来获取数据。
我认为这将是更可读的代码
public function search()
{
$search = Input::get('search');
$result = Products::where('name', 'LIKE', '%'. $search .'%')->get();
if ($result->first()) {
$categories = Categories::with('product')->orderBy('name', 'asc')
->whereHas('product', function($query) use ($search){
$query->where('name', 'LIKE', '%'.$search.'%');
})->get();
return View::make('groceries.index')
->with('categories', $categories);
}
}
谢谢,忘了拿礼物了真的…:)令人惊叹的!