2017-10-19 10 views
0

Dans l'un des composants de mon plugin, j'ai une fonction qui lit l'entrée de l'utilisateur (en utilisant Input::get()), crée un Model et l'enregistre dans la base de données. Les données sont soumises à cette fonction via un formulaire html. Maintenant, je veux permettre aux utilisateurs d'ajouter de nouvelles données via Rest API aussi. Donc, je crée un fichier appelé routes.php dans le répertoire racine de mon plugin et définir une route pour l'envoi de données. Comme il est logique de réutiliser le code qui est déjà disponible dans mes plugins composant, j'ai essayé de cartographier la route vers la fonction des composants déjà disponibles:Comment rendre la fonction de composants plugin disponible en tant qu'API Rest dans OctoberCMS?

Route::post('/items', 'Acme\Plugin\Components\[email protected]'); 

Mais cela ne fonctionne pas et je reçois l'erreur suivante:

Est-ce ainsi que le code devrait être réutilisé dans mon API de repos?

The component Acme\Plugin\Components\ItemsList does not contain a method getAfterFilters

Pourquoi ai-je cette erreur?

+0

Acme \ Plugin \ Co mponents \ ItemsList implémente une interface, et vous devez avoir une méthode getAfterFilters dedans. ou ne pas implémenter à partir de cette interface. – Asheliahut

+0

@Asheliahut Il étend 'ComponentBase', comme tous les composants le font en octobreCMS. – Meysam

Répondre

2

faire un contrôleur sans extension et utiliser l'injection de dépendance pour le composant dans le constructeur

ou

étendent à partir de

Illuminate\Routing\Controller 

et injection dependecy

vous pouvez utiliser la "Route::resource" fonction