Route naming
Route naming is for the program to easily obtain routing information. After obtaining this information, you can redirect or perform other operations. Routing commands are implemented through the name method. Next, let's name a route:
Route::get('about', function () {})->name('index.about');
After naming a route, you can get the url of the route through the assistant function route.
$url = route('index.about'); echo $url; // http://localhost:8000/about
If we don’t want the front domain name part, but just want the back path, then we can do this
$url = route('index.about', [], false); echo $url; // /about
If we define a route with parameters, we can use the parameters as the route function The second parameter is passed in
Route::get('news/{id}', 'IndexController@news')->name('home.news'); ... return redirect()->route('home.news', ['id' => 23]);
The second parameter array element in the route function can automatically correspond to the routing parameters. If the second parameter array element in the route function is more than the parameters set by the route, it will Automatic splicing to generate URL
echo route('home.news', ['id' => 23, 'page' => 3, 'page_num' => 20]); // http://localhost:8000/news/23?page=3&page_num=20
Route grouping
The role of routing grouping is that when the system has set many routes, but some routes are found to have If you have some common points, such as the same namespace prefix, or the same path prefix, you can put those routes that have common points into one route, which facilitates management and reduces the amount of code, and the code looks good. More elegant.
Route prefix
We put routes with the same prefix in a group. The following are two routes with the same prefix:
Route::prefix('index')->get('a', function () { return 'a'; // 匹配/index/a }); Route::prefix('index')->get('b', function () { return 'b'; // 匹配/index/b });
Now, we put them into a group
Route::prefix('index')->group(function () { Route::get('a', function () { return 'a'; // 匹配/index/a }); Route::get('b', function () { return 'b'; // 匹配/index/b }); });
In addition to using the prefix method, you can also use the first parameter of the group method settings, as follows:
Route::group(['prefix' => 'index'], function () { Route::get('a', function () { return 'a'; // 匹配/index/a }); Route::get('b', function () { return 'b'; // 匹配/index/b }); });
Namespace
Namespace is also a frequently used routing group.
Route::group(['namespace' => 'Home'], function () { Route::get('home/index', 'IndexController@index'); });
If the above code does not set a namespace, the above route will be
Route::get('home/index', 'Home\IndexController@index');
subdomain name
used Set which domain name can be accessed. If it is not this domain name, it cannot be accessed even if the path is correct.
Route::domain('php.cn')->group(...)
Name prefix
The name method can add a given prefix to the route in each routing group
Route::name('abc.')->group( function () { Route::get('home', function () { })->name('home'); }); …… $url = route('abc.home');
The above is the detailed content of Laravel Lecture 4: Route Naming and Route Grouping. For more information, please follow other related articles on the PHP Chinese website!