Laravel路由设置

Laravel路由设置

创建路由

路由的作用是在用户访问指定页面时将页面URL匹配到被执行的控制器或匿名函数。默认情况下,所有的Laravel路由都定义在app/Http/routes.php。
<?php

use App\Task;
use Illuminate\Http\Request;

/**
 * Display All Tasks
 */
Route::get('/', function () {
   //
});

/**
 * Add A New Task
 */
Route::post('/task', function (Request $request) {
    //
});

/**
 * Delete An Existing Task
 */
Route::delete('/task/{id}', function ($id) {
    //
});

1.基本路由
最基本的路由接收一个URI和一个闭包

Route::get('/',function(){
	return "some view";
})

2.为多个动作注册路由
有时候需要注册一个路由来响应多个不同的HTTP动作,可以使用Route的match或者any方法来实现,对应的路由由url()助手函数来生成。

Route::match(['get', 'post'], '/', function () {
    return 'Hello World';
});
Route::any('foo', function () {
    return 'Hello World';
});

3.路由参数

3.1 必选参数

Route::get('user/{id}', function ($id) {
return 'User '.$id;
});
Route::get('posts/{post}/comments/{com>>>ment}', function ($postId, $commentId) {
//可以按需要定义多个路由参数
});

3.2 可选参数
通过在参数后加一个?来标记,如{param?}
3.3.1 正则约束
使用路由实例上的where方法来约束路由参数的格式。
Route::get(‘user/{name}’, function ($name) {
//
})->where(‘name’, ‘[A-Za-z]+’);

Route::get(‘user/{id}’, function ($id) {
//
})->where(‘id’, ‘[0-9]+’);

Route::get(‘user/{id}/{name}’, function ($id, $name) {
//
})->where([‘id’ => ‘[0-9]+’, ‘name’ => ‘[a-z]+’]);

3.3.2 全局约束
在RouteServiceProvider类的boot方法中定义全局约束模式
在这里插入图片描述

4 命名路由(方便url生成或者重定向)

$url = route(‘profile’);
$redirect = redirect()->route(‘profile’);

Route::get('user/profile', ['as' => 'profile', function () {
    //
}]);

5 路由分组
如果你在使用路由分组,可以在路由分组属性数组中指定as关键字来为分组中的路由设置一个共用的路由名前缀

Route::group(['as' => 'admin::'], function () {
   Route::get('dashboard', ['as' => 'dashboard', function () {
           // 路由被命名为 "admin::dashboard"
           }]);
});

添加路由前缀
属性prefix可以用来为分组中每个给定URI添加一个前缀,比如,你想要为所有路由URIs前面添加前缀admin:

Route::group(['prefix' => 'admin'], function () {
   Route::get('users', function ()    {
           // 匹配 "/admin/users" URL
     });
});

6.防止CSRF攻击
{!! csrf_field() !!}
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
<?php echo csrf_field(); ?>
从CSRF保护中排除URIs
在这里插入图片描述
在这里插入图片描述
7. 资源路由
Route::resource(‘role’, ‘RoleController’, [‘as’ => ‘admin’]);
生成路由如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值