Link 两表合一 Laravel 5.5
Link two tables in one in Laravel 5.5
$category = Category::all();
$product = Product::all()->where('category_id', $category->name)->get();
从其名称中更改类别 ID link Laravel 5.5 中的两个表合二为一。
您需要 return 查看并传递数据,而不是 return 创建集合:
return view('some.view', [
$category => Category::all();
$product => Product::where('category_id', $category->name)->get();
]);
https://laravel.com/docs/5.5/views#passing-data-to-views
此外,当您这样做时:
$product=Product::all()->where('category_id',$category->name)->get();
您正在将数据库中的所有产品加载到内存中,然后过滤它们,因为 all()
正在执行查询。不要这样做。
请参阅 Laravel 有关建立关系的文档:
https://laravel.com/docs/5.5/eloquent-relationships
Category
& Product
之间的关系是一对多的,所以它将是:
// app/Category.php
public function products()
{
return $this->hasMany(Product::class);
}
$category = Category::all();
$product = Product::all()->where('category_id', $category->name)->get();
从其名称中更改类别 ID link Laravel 5.5 中的两个表合二为一。
您需要 return 查看并传递数据,而不是 return 创建集合:
return view('some.view', [
$category => Category::all();
$product => Product::where('category_id', $category->name)->get();
]);
https://laravel.com/docs/5.5/views#passing-data-to-views
此外,当您这样做时:
$product=Product::all()->where('category_id',$category->name)->get();
您正在将数据库中的所有产品加载到内存中,然后过滤它们,因为 all()
正在执行查询。不要这样做。
请参阅 Laravel 有关建立关系的文档:
https://laravel.com/docs/5.5/eloquent-relationships
Category
& Product
之间的关系是一对多的,所以它将是:
// app/Category.php
public function products()
{
return $this->hasMany(Product::class);
}