Laravel Routing笔记

所有route被定义在app/Http/routes.php文件中,文件里包含最基础的route和group。默认的group是提供Web中间件的group。只有Web中间件内的Group才可以访问session以及CSRF保护。

Router允许注册的route类型包括:

Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);

如果需要同时满足多种请求类型,需要使用match方法,如果需要同时满足全部请求类型,使用any方法:

Route::match([‘get‘, ‘post‘], ‘/‘, function () {
    //
});

Route::any(‘foo‘, function () {
    //
});

Route可以从访问的url中获取参数:

Route::get(‘user/{id}‘, function ($id) {
    return ‘User ‘.$id;
});

Route::get(‘posts/{post}/comments/{comment}‘, function ($postId, $commentId) {
    //
});

参数中不允许包含-,只能使用_代替

我们也可以给route起名,方便在url中使用以及重定向。定义时使用‘as‘作为数组的key:

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

使用Controller的route也可以如下定义:

Route::get(‘user/profile‘, [
    ‘as‘ => ‘profile‘, ‘uses‘ => ‘[email protected]‘
]);

同时你可以在定义route时调用方法设置名字:

Route::get(‘user/profile‘, ‘[email protected]‘)->name(‘profile‘);

如果你使用了group,你可以使用as声明一个route名字前缀用于所有group内的route:

Route::group([‘as‘ => ‘admin::‘], function () {
    Route::get(‘dashboard‘, [‘as‘ => ‘dashboard‘, function () {
        // Route named "admin::dashboard"
    }]);
});

定义名字后你就可以方便的使用了:

// Generating URLs...
$url = route(‘profile‘);

// Generating Redirects...
return redirect()->route(‘profile‘);

如果需要传参,你只需要像调用函数一样:

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

$url = route(‘profile‘, [‘id‘ => 1]);

参数会被自动插入url的对应位置。

Route Group:

Route Group允许你共享属性给一组route,如middleware或者namespace。例子如下:

Route::group([‘middleware‘ => ‘auth‘], function () {
    Route::get(‘/‘, function ()    {
        // Uses Auth Middleware
    });

    Route::get(‘user/profile‘, function () {
        // Uses Auth Middleware
    });
});

Route::group([‘namespace‘ => ‘Admin‘], function()
{
    // Controllers Within The "App\Http\Controllers\Admin" Namespace

    Route::group([‘namespace‘ => ‘User‘], function() {
        // Controllers Within The "App\Http\Controllers\Admin\User" Namespace
    });
});

默认的namespace目录为App\Http\Controllers。

同时也可以用route的group来匹配二级域名以及url前缀:

Route::group([‘domain‘ => ‘{account}.myapp.com‘], function () {
    Route::get(‘user/{id}‘, function ($account, $id) {
        //
    });
});

Route::group([‘prefix‘ => ‘admin‘], function () {
    Route::get(‘users‘, function ()    {
        // Matches The "/admin/users" URL
    });
});

甚至可以在url前缀中加入参数:

Route::group([‘prefix‘ => ‘accounts/{account_id}‘], function () {
    Route::get(‘detail‘, function ($accountId)    {
        // Matches The "/accounts/{account_id}/detail" URL
    });
});
时间: 2024-10-29 10:46:13

Laravel Routing笔记的相关文章

laravel安装笔记 (转)

一.安装composer 安装之前将\php\php.ini文件中的php_openssl.dll扩展库开启,否则composer在安装过程中会出现错误提示. (我在安装过程中发现apache目录下的php.ini最好也开启php_openssl.dll,就是讲前面的‘:’号去掉) composer下载地址:https://getcomposer.org/ windows下载地址:https://getcomposer.org/Composer-Setup.exe 二.下载Laravel最新框架

Laravel学习笔记(三)--在CentOS上配置Laravel

在Laravel框架上开发了几天,不得不说,确实比较优雅,处理问题逻辑比较清楚. 今天打算在CentOS 7上配置一个Laravel,之前都是在本机上开发,打算实际配置一下. 1)系统上已经安装了Apache.PHP.mysql,安装命令为yum install httpd php mysql 因为CentOS 7自带的php模块很少,如果需要增加模块,需要编译才行,所以需要php-devel模块,用yum install php-devel命令就可以了. 2)安装laravel a)安装com

Laravel学习笔记(二)

解决了类自动加载的问题,剩下的问题就是看文档了,laravel的官方文档虽然简单,但是却包含了很多基础知识,学习Laravel最好先看看官方文档,我感觉帮助很大,因为laravel框架的源码看起来并不容易,一层一层的套,看文档会快一些,如果想更详细的了解,可以考虑研究源码. 考虑到laravel框架的复杂性,最好不要使用编辑器,要用IDE来开发,因为IDE可以调试.跳转到类声明文件等等,还包括一些自动完成的功能.不过如果坚持要使用编辑器,推荐用sublime,常见的IDE有Netbeans.PH

laravel 学习笔记 —— 神奇的服务容器

转载自:https://www.insp.top/learn-laravel-container 容器,字面上理解就是装东西的东西.常见的变量.对象属性等都可以算是容器.一个容器能够装什么,全部取决于你对该容器的定义.当然,有这样一种容器,它存放的不是文本.数值,而是对象.对象的描述(类.接口)或者是提供对象的回调,通过这种容器,我们得以实现许多高级的功能,其中最常提到的,就是 “解耦” .“依赖注入(DI)”.本文就从这里开始. IoC 容器, laravel 的核心 Laravel 的核心就

laravel安装 笔记

http://laod.cn/hosts/2015-google-hosts.html 谷歌FQIP laravel安装和设置流程 1安装composer , VirtualBox和Vagrant 下载composer https://getcomposer.org/download/ 直接下载Composer-Setup.exe 点击下一步自动安装 path属性安装完后自动配置了path属性 下载VirtualBox: https://www.virtualbox.org/wiki/Downl

Laravel学习笔记目录

伴随自己学习.使用laravel的过程,记录下遇到过的问题与思考.与程序猿们共勉,知识的道路没有止境,我们一直都在学习的路上. 第一部分:入门级 这部分文章写得都是比较浅显的,属于纯粹的使用,我也不知道自己什么时候能够登堂入室.先这么写着吧.后面的项目会用到利用laravel来进行app的服务端开发.到时可能也开一个专栏专门说说app服务端开发的那些事儿. 1. Laravel5学习笔记:Composer.json配置文件说明 2. Laravel5学习笔记:执行route:cache时报Log

laravel安装笔记

一.安装composer 安装之前将\php\php.ini文件中的php_openssl.dll扩展库开启,否则composer在安装过程中会出现错误提示. (我在安装过程中发现apache目录下的php.ini最好也开启php_openssl.dll,就是讲前面的‘:’号去掉) composer下载地址:https://getcomposer.org/ windows下载地址:https://getcomposer.org/Composer-Setup.exe 二.下载Laravel最新框架

Laravel学习笔记

1.Laravel 5 动态设置缓存引擎 \Config::set('cache.default','redis'); var_dump( \Config::get('cache.default') ); \Config::set('cache.default','memcached'); var_dump( \Config::get('cache.default') ); 2.Laravel 5 中 \ 和use Illuminate\Support\Facades\ 作用相同 3.Larav

laravel学习笔记(一)——安装以及部分配置

基本要求: php>=5.5.9 OpenSSL PHP 扩展 - PDO PHP 扩展 - Mbstring PHP 扩展 - Tokenizer PHP 扩展 启用mod_rewrite模块     sudo a2enmod rewrite 安装过程: 安装composer curl -sS http://getcomposer.org/install | php php -r "readfile"('http://getcomposer.org/install');&quo