// catégorieController // produit_to_to_catégories table pivot ... p> Je ne peux pas paginer les produits sur la page, comment Souhaitez-vous vous faire paginer avec un chargement impatient ou transmettre les variables séparément ... P> J'ai une table de pivotement catégorie_produise ... p> Je veux aussi filtrer en fonction de la marque et du prix? P> EDIT:
// produit.pphp p>
4 Réponses :
Vous pouvez le faire en deux étapes comme ceci:
class CategoryController extends Controller
{
public function show($slug)
{
$category = Category::where('slug', $slug)->first();
$products = Product::where('category_id', $category->id)->paginate(20);
return view('pages.category.show', compact('category', 'products'));
}
}
Merci, cependant, cela ne fonctionne pas car c'est une table de pivotement ...
Inversez-le, ce qui signifie requis pour les produits à la place:
class CategoryController extends Controller
{
public function show($slug)
{
$products = Product::with(['categories'])->whereHas('categories', function ($query) use ($slug) {
$query->where(['slug' => $slug]);
})->paginate();
return view('pages.category.show', compact('products'));
}
}
Merci @tpojka que la réponse fournit les mêmes résultats que ma solution ci-dessous ...
Je m'envoie toujours avec la convention de nommage de la recommandation-cadre et que cette amorce devrait fonctionner. De votre question, nous ne savons pas si il y a deux tables I.e. Catégorie_Production Code> et Produits_To_Catégories CODE>. Conservez-le simple et collant avec la convention de nommage de Laravel Votre table doit être une boîte inférieure catégorie_produise code>. De plus, vous devriez avoir des relations dans des modèles qui se sont interrogés. De cette façon, la pagination fonctionne naturellement. Testez si ce travail dd (\ app \ produit :: avec (['Catégories']) -> Premier ()); code> Si cela ne fonctionne pas, les relations entre les modèles sont à tort suspect.
Merci oui, je sais sur la convention Laravel ... Cependant, l'endroit où je travaille préfère cette convention de dénomination de table. Je vérifierai si cela fonctionne pour voir si c'est correct.
Il fonctionne ... `` `` Catégories de fonctions publiques () {Retour $ Ceci-> Betarottomanany (Catégorie :: Classe, 'Produits_To_Catégories', 'Product_ID', 'Catégorie_id'); } `` `parce que ...
Vous avez besoin de Catégories () Code> Méthode / Relation dans Produit Code> Modèle et Produits () Code> Méthode / Relation dans Catégorie Code> Modèle. Ici, vous avez montré des relations entre catégorie et catégorie. Postez vos modèles et quelqu'un vous dira si ceux-ci sont bien définis.
Merci @tpojka que la réponse fournit les mêmes résultats que ceci ci-dessous ...
class CategoryController extends Controller
{
public function show($slug)
{
$category = Category::where('slug', $slug)->first();;
$products = $category->products()->paginate(15);
return view('pages.category.show', compact('category', 'products'));
}
}
Ceci avec chargement impatient
class CategoryController extends Controller
{
public function show($slug)
{
$category = Category::with('products')->whereHas('products' => function($query) {
if(request()->has('price')
{
$query->where('price',request()->input('price');
}
if(request()->has('brand')
{
$query->where('brand',request()->input('brand');
}
})->where('slug', $slug)->paginate(20);
return view('pages.category.show', compact('category'));
}
}