2016-11-01 1 views
-1

Je ne suis pas sûr de trouver la meilleure façon de charger plusieurs vues de la même ressource dans Laravel. Je vais expliquer le problème:Meilleures pratiques pour charger plusieurs vues pour la même ressource

J'ai une ressource appelée Books, qui a un contrôleur appelé BooksController avec les méthodes restfull de base (index, magasin, etc.). Maintenant, je veux que, dans ma page d'accueil, ces livres soient chargés avec des choses différentes provenant de différentes ressources, mais je veux aussi que ces livres soient chargés avec des ressources différentes dans des pages différentes, et c'est là que j'ai du mal à trouver contrôleurs que je devrais utiliser.

Quand devrais-je utiliser les requêtes BooksController GET, car il ne montrera jamais seulement quelque chose lié aux livres seulement? Dois-je créer un contrôleur pour chaque page? Comme un HomeController pour montrer les livres avec les différentes ressources, et la même chose pour tout autre -Page-Controller, en laissant le BooksController uniquement pour la mise à jour et le stockage?

Peut-être que je ne devrais pas utiliser le repos du tout et juste créer un contrôleur pour chaque page?

J'ai vraiment besoin d'une lumière ici pour m'aider à mieux comprendre ce flux de pages et de contrôleurs en utilisant MVC et REST, merci d'avance!

Répondre

0

Voici comment je structurer:

  • Avoir un controller gérer toutes les opérations CRUD pour chacun de vos ressources (un contrôleur pour votre Book, l'un pour l'autre ressource)
  • Avoir un controller gérer votre vues, ce contrôleur serait celui où vous mélanger chacune de vos ressources pour créer la vue que vous voulez

Il est OK de séparer vos contrôleurs pour gérer une logique spécifique tant que vous restez ainsi C'est une sorte de convention pour garder une trace de cela, comme nommer vos contrôleurs d'une manière spécifique afin que vous puissiez les différencier rapidement.

Vous pouvez structurer votre contrôleur de ressources pour qu'il agisse en tant qu'API, et les requêtes get ne retourneront que JSON. Ce qui faciliterait également l'interaction de votre frontend javascript avec vos ressources.

+0

Bonne réponse, c'est exactement ce que je pensais après y avoir réfléchi plus profondément. Je pense que je vais créer un contrôleur différent pour chaque page qui n'est pas statique et gérer la logique dans le modèle de la ressource, laissant le contrôleur de la ressource uniquement pour CRUD comme vous l'avez dit. Merci beaucoup! –