Introduction à Laravel Route Controller

Ces contrôleurs vous permettent de créer vos classes de contrôleurs à l'aide de méthodes utilisées pour gérer diverses demandes. Ce serait beaucoup plus facile si nous comprenons le concept de contrôleur d'itinéraire laravel à l'aide d'un exemple. Nous irons étape par étape afin d'avoir une bonne compréhension des contrôleurs de routage. Nous allons donc ici avec les étapes:

Comment créer Laravel Route Controller?

Voici quelques étapes pour créer des contrôleurs de routage laravel qui sont expliquées ci-dessous:

Étape 1: La toute première étape consiste à créer un contrôleur. Si vous n'êtes pas familier avec la création d'un contrôleur, passez par les points ci-dessous pour créer un contrôleur, sinon passez directement à l'étape 2 pour les contrôleurs de routage.

  • Utilisez la commande artisan ci-dessous pour créer le contrôleur.

Code:

Php artisan make: Controller MyController

  • Le fichier MyController.php sera créé dont le code par défaut est le suivant.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function show($id)
(
//
)
)

Étape 2: Maintenant, vous devez écrire cette route ci-dessous dans le fichier web.php.

Code:

Route::get('/post', ' ');

Ici, le premier paramètre est l'URL à laquelle vous souhaitez accéder, et MyController est bien évidemment le nom de notre contrôleur. Le «show» comme vous pouvez le voir dans le fichier MyController.php, est la méthode. Donc, @show indique ici que la méthode show () serait appelée lorsque nous frapperons l'URL '/ post'.

Étape 3: Vous pouvez maintenant ajouter des lignes de codage comme indiqué ci-dessous.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
/**
*Display resource
*
*/
public function show($id)
(
//
)
/**
*Display resource listing
*
*/
public function index()
(
//
)
/**
*Editing resource
*
*/
public function edit($id)
(
//
)
)

Étape 4: Il est maintenant temps d'appuyer sur l'URL. Vous obtiendrez une sortie spécifiée après avoir entré l'URL. J'espère que nous avons couvert suffisamment d'informations sur les contrôleurs pour que vous puissiez accéder à votre contrôleur maintenant. Allons de l'avant maintenant sur la façon dont nous pouvons également transmettre des données à notre classe de contrôleur. Encore une fois, il serait beaucoup plus facile d'apprendre à transmettre des données via des paramètres à notre contrôleur à l'aide d'un exemple.

Transmission des données au contrôleur

1. Écrivez cette route ci-dessous dans le fichier web.php:

Code:

Route::get('/post/(id)', ' ');

La seule différence dans la définition de cette route est que cette ligne de code contient également le paramètre 'id' avec l'URL.

2. Modifiez le fichier 'MyController.php' comme indiqué ci-dessous.

Code:

public function show($id)
(
return “ID is :”.$id;
)

Ici, la seule différence dans la méthode show () est que nous l'avons modifiée en passant le paramètre 'id' dans la méthode show ().

3. Encore une fois, frappons l'URL dans notre navigateur. Vous obtiendrez une sortie en fonction du paramètre.

Espaces de noms

Voici une information sur les espaces de noms:

Lors de la définition de la méthode Route :: get () pour notre classe de contrôleur, il n'est pas nécessaire de mentionner l'espace de noms complet pour le contrôleur car 'RouteServiceProvider' charge presque tous vos fichiers de route dans un groupe de routes qui contient un espace de noms. Vous devez simplement spécifier la partie du nom qui viendra après App / Http / Controllers.

Par exemple, si le chemin d'accès complet de la classe de contrôleur est App / Http / Controllers / User / UsersController, il n'est pas nécessaire de mentionner l'espace de noms complet. Vous pouvez simplement définir l'itinéraire comme suit:

Code:

Route::get('\user', 'User\ ');

Contrôleur à simple action

Si vous souhaitez définir le contrôleur à action unique, vous pourrez le faire en plaçant une seule méthode «__invoke» sur votre contrôleur. On dit que PHP a des fonctions incroyablement magiques et que la fonction '__invoke' fait partie de cette liste magique. Avec l'aide de cette fonction magique '__invoke', vous pouvez définir la classe en utilisant une seule fonction PHP '__invoke', et à tout moment lorsque l'objet sera appelé, il appellera à son tour directement la méthode '__invoke' sans même avoir manuellement appelé $ obj-> randomFunction ().

Maintenant, la question se pose, où pouvez-vous l'utiliser? Assez juste, c'est notre psychologie de poser cette question chaque fois que nous rencontrons une nouvelle fonctionnalité. À titre d'exemple, cela peut être utilisé lors de la mise en œuvre du SRP (principe de responsabilité unique). Comme nous avons créé un contrôleur ci-dessus en utilisant la commande artisan, de la même manière en utilisant php artisan: make controller MyController, le codage du fichier MyController ressemblera à celui ci-dessous:

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
//
)

Nous sommes heureux d'ajouter des lignes de code pour la méthode __invoke () dans la classe MyController. Voici un exemple de l'apparence de la classe après l'ajout de code.

Code:

<_?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class MyController extends Controller
(
public function __invoke($id)
(
return “ID is :”.$id;
)
)

Maintenant, le fichier web.php doit être modifié car il est seul responsable de toute la gestion des actions. La ligne de code ressemblera à ceci:

Code:

Route::get('/post/(id)', 'MyController');

Cette ligne de code frappera la fonction '__invoke ()' de notre classe MyController. On peut en conclure d'ici que vous n'avez pas nécessairement à écrire la fonction @invoke pour accéder aux contrôleurs à action unique.

Remarque: Dans le cas où vous ne spécifiez aucune action, c'est-à-dire que vous n'écrivez pas la méthode __invoke (), cela générera une erreur d'action de route non valide, c'est-à-dire, UnexpectedValueExpression.

Aperçus pour créer des itinéraires Laravel

Chaque itinéraire dans Laravel est défini dans des fichiers d'itinéraire. Ces fichiers d'itinéraire se trouvent dans le sous-répertoire des itinéraires. Il n'est pas nécessaire de charger manuellement ces fichiers car ils sont automatiquement chargés par le framework Laravel. Le fichier d'itinéraire de votre application est stocké dans le fichier 'app / Http / routes.php'. Le routage général pour toute demande à Laravel ressemble à:

Code:

Route::get ('/', anyFunction() (
return 'This is Index';
));

Code:

Route::post ('user/dashboard', anyFunction() (
return 'This is Dashboard';
));

Mécanisme de routage

Le mécanisme de routage peut être compris en trois étapes qui suivent:

  • Tout d'abord, créez une URL racine et exécutez-la.
  • Assurez-vous que votre URL correspond aux méthodes du fichier root.php, alors seulement toutes les fonctions associées seront exécutées.
  • La fonction appelle d'abord les fichiers de modèle, puis la fonction view () est appelée avec un nom de fichier dans resources / views /.

Conclusion

Nous espérons que jusqu'à présent, nous avons appris un bon nombre de concepts Laravel Route Controller qui vous permettront de créer votre propre contrôleur de routage Laravel pour votre application, qui sera à la fois sécurisé et puissant.

Articles recommandés

Ceci est un guide pour Laravel Route Controller. Nous discutons ici des données transmises au contrôleur, des espaces de noms, du contrôleur à action unique et des différentes étapes pour créer un Laravel. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus -

  1. Qu'est-ce que Laravel?
  2. laravel vs Ruby on Rails
  3. Laravel vs Codeigniter
  4. Commandes Laravel