私はしばらくの間これを苦労してきました。 私は特定のピボットcategory
を含むすべての「製品」を得ることはできません。Laravelカテゴリを持つすべてのレコードを取得
だから私はルートを持っている:と
Route::get('products/{category}', ['as' => 'category.products', 'uses' => '[email protected]']);
と製品モデル:
public function categories()
{
return $this->belongsToMany(Category::class);
}
をそして、私のコントローラ:
public function getCatProducts($categoryUrl)
{
$products = Product::get();
$productsWithCat = [];
// loop through all projects
foreach($products as $product) {
// loop through all categories assigned to product
$categories = $product->categories;
foreach($categories as $category) {
// check if product has category from url
if ($category->title == $categoryUrl) {
array_push($productsWithCat, $product);
}
}
}
$category = $categoryUrl;
$products = $productsWithCat;
return view('pages.category-products', compact('products', 'category'));
}
だから、これは動作しますが、おそらくそこにありますこれを行うもっと良い方法です。以下のような 何か:
$products = Product::with('categories.title', $categoryUrl)->get();
はまた、私のやり方はもう、配列ではなく、コレクションを返すので、私も私のブレードのカテゴリに取得することはできません。
誰かが私を助けてくれることを願っています。
ありがとうございます!
恐ろしい、高速応答をありがとう! – MarvinVK