本篇文章给人人带来的内容是关于Laravel5.2中HTTP路由、建立控制器和资本路由的引见(附代码),有肯定的参考价值,有须要的朋侪能够参考一下,愿望对你有所协助。类别:Laravel / 日期:2019-11-27 / 浏览:255 / 评论:0
一、HTTP路由
一切路由都定义在 App\Providers\RouteServiceProvider 类载入的 app/Http/routes.php文件中。
1. 基础路由
简朴的 Laravel 路由只接收一个 URI 和一个闭包
Route::get('foo', function () { return 'Hello, Laravel!'; });
关于罕见的 HTTP 要求,Laravel 有以下几种路由
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); //相应一切要求
个中,$callback 能够是一个闭包,也能够是一个控制器要领。实际上,在开辟中有不少状况是用作控制器要领的。
2. 路由参数
//单个路由参数 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]+']);
二、建立控制器
运用 Artisan 敕令建立 php artisan make:controller UserController
如今,在 app/Http/Controllers 这个控制器目次下就生成了 UserController.php 的控制器文件。
三、高等路由
1. 定名路由
//定名闭包路由 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'));
2. 路由分组
2.1 路由前缀和定名空间
比方,有两条指向控制器要领的路由
Route::get('admin/login', 'Admin\IndexController@login'); Route::get('admin/index', 'Admin\IndexController@index');
拿第一条来讲,
参数一:admin/login 示意这个 URI 在要求网站根目次下的 admin/login 资本,完全地点就是 http://域名/admin/login (这里开启了 Apache 的路由重写,隐蔽了 “index.php“ ),这个要求被映射到第二个参数中指定的控制器要领。注重,网站根目次是进口文件地点目次,在 Laravel 中就是 public 目次,设置服务器时最好也指向这里。
参数二:Admin\IndexController@login 示意这个控制器要领是在 App\Http\Controllers 定名空间下的,连起来就是 App\Http\Controllers\Admin\IndexController 控制器里的 login 要领。
明显,两条路由的 URI 和 控制器要领 都有雷同的部份,那末,启用路由分组能够提掏出大众部份:
// 第一个数组参数中,prefix 键定义 URI 的大众部份,namespace 键定义要领名(定名空间语法)的大众部份 Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); });
2.2 资本路由
资本路由就是映射到资本控制器的路由,Laravel 资本控制器内置了对资本增编削查的 7 个要领以及 7 条路由。
起首,建立资本控制器 ArticleController
php artisan make:controller Admin/ArticleController --resource
如许就生成了资本控制器在 app/Http/Controllers/Admin/ArticleController.php 文件(Admin 文件夹不存在时会自动建立),内置的 7 个要领以下 :
<?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) { // } }
然后,定义资本路由 。这里我照样挑选在路由分组下定义,定义一条就好
Route::group(array('prefix' => 'admin', 'namespace' => 'Admin'), function(){ Route::get('login', 'IndexController@login'); Route::get('index', 'IndexController@index'); // 资本路由 Route::resource('article', 'ArticleController'); });
末了,检察路由。有了资本控制器 和 资本路由,就能够看一下对以上 7 个要领的 HTTP 要求体式格局了。
运用 Artisan 敕令 php artisan route:list 列出当前的一切路由,要求体式格局、URI、控制器要领、中间件都排列出来了。
以上就是Laravel5.2中HTTP路由、建立控制器和资本路由的引见(附代码)的细致内容,更多请关注ki4网别的相干文章!