Toutes les routes sont définies dans le fichier app/Http/routes.php chargé par la classe AppProvidersRouteServiceProvider.
Le routage Laravel simple n'accepte qu'un URI et une fermeture
Route::get('foo', function () { return 'Hello, Laravel!'; });
Pour les requêtes HTTP courantes, Laravel propose les routes suivantes :
Route::get($uri, $callback); //响应 get 请求 Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback); Route::match(['get', 'post'], $uri, $callback); //响应 get, post 请求 Route::any('foo', $callback); //响应所有请求
Parmi elles, $callback peut être une méthode de fermeture ou de contrôleur. En fait, il existe de nombreuses situations de développement dans lesquelles des méthodes de contrôleur sont utilisées.
//单个路由参数 Route::get('user/{id}', function ($id) { return 'User '.$id; }); //多个路由参数 Route::get('posts/{post}/comments/{comment}', function ($postId, $commentId) { // }); //单个路由参数(可选) Route::get('user/{id?}', function ($id = 1) { return 'User '.$id; }); //多个路由参数(可选) Route::get('posts/{post}/comments/{comment?}', function ($postId, $commentId = 1) { // }); //注意:多个参数时,只可以对最后一个参数设置可选,其他位置设置可选会解析错误 // 正则约束单个参数 Route::get('user/{name?}', function ($name = 'Jone') { return $name; })->where('name', '\w+'); //约束参数为单词字符(数字、字母、下划线) // 正则约束多个参数 Route::get('user/{id}/{name}', function ($id, $name) { // })->where(['id' => '[0-9]+', 'name' => '[a-z]+']);
Utilisez la commande Artisan pour créer php artisan make. : contrôleur UserController
Maintenant, le fichier du contrôleur UserController.php est généré dans le répertoire du contrôleur app/Http/Controllers.
//命名闭包路由 Route:get('user', array('as' => 'alial', function(){}); //或 name 方法链 Route:get('user', function(){})->name('alias'); //命名控制器方法路由 Route:get('user', array('uses' => 'Admin\IndexController@index', 'as' => 'alias')); //或 name 方法链 Route:get('user', 'Admin\IndexController@index')->name('alias'));
Par exemple, il existe deux routes pointant vers des méthodes de contrôleur
Route::get('admin/login', 'Admin\IndexController@login'); Route::get('admin/index', 'Admin\IndexController@index');
admin/login
signifie que cet URI demande la ressource admin/login sous lerépertoire racine du site Web , complétez adresse C'est http://domain name/admin/login (La réécriture de route d'Apache est activée ici, cachant "index.php") Cette requête est mappée à la méthode du contrôleur spécifiée dans le deuxième paramètre. Notez que le répertoire racine du site Web est le répertoire où se trouve le fichier d'entrée, qui est le répertoire public de Laravel. Il est préférable de pointer ici lors de la configuration du serveur. Paramètre deux : AdminIndexController@login
signifie que cette méthode de contrôleur se trouve sous l'espace de nomsAppHttpControllers et que la connexion est la méthode de connexion dans le contrôleur AppHttpControllersAdminIndexController.
Évidemment, l'URI et la méthode du contrôleur des deux routes ont les mêmes parties. Ensuite, activer le regroupement de routes peut extraire les parties communes :< 🎜. >
// 第一个数组参数中,prefix 键定义 URI 的公共部分,namespace 键定义方法名(命名空间语法)的公共部分 Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); });
2.2 Routage des ressources
Le routage des ressources est l'itinéraire mappé vers le contrôleur de ressources, Laravel Resource Controller Il a 7 méthodes intégrées pour ajouter, supprimer, modifier et vérifier des ressources et 7 itinéraires. Tout d'abord, créez un
Contrôleur de ressourcesArticleController
Veuillez vous assurer que la commande ci-dessus existe dans le fichier app/Http/Controllers. répertoire Répertoire d'administration.
php artisan make:controller Admin\ArticleController --resource
Les 7 méthodes intégrées sont les suivantes :
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class LinksController extends Controller { /** * 显示一个资源的列表 * * @return \Illuminate\Http\Response */ public function index() { // } /** * 显示一个表单来创建一个新的资源 * * @return \Illuminate\Http\Response */ public function create() { // } /** * 保存最新创建的资源 * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * 显示指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * 显示一个表单来编辑指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * 更新指定的资源 * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * 删除指定的资源 * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
.
Ici, je choisis toujours de le définir sous le groupe de routage, il suffit d'en définir un
Enfin, vérifiez l'itinéraire. Avec le contrôleur de ressources et le routage des ressources, vous pouvez consulter les méthodes de requête HTTP pour les 7 méthodes ci-dessus.
Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); // 资源路由 Route::resource('article', 'ArticleController'); });
pour répertorier toutes les routes actuelles, y compris les méthodes de requête, les URI, les méthodes de contrôleur et le middleware.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!