立即注册 登录
PHP-Z 返回首页

frankphper的个人空间 http://php-z.com/?200052 [收藏] [复制] [RSS]

日志

Laravel HTTP路由 控制器

已有 3360 次阅读2016-6-14 17:59 |个人分类:Laravel|系统分类:后端开发

Laravel HTTP路由 控制器
文件路径:/app/Http/routes.php
<?php

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/

Route::get('/', function () {
    // return view('welcome'); // 视图
    return view('index'); // 视图
});

// 最基本的路由,接收一个URI和一个闭包
// 注册路由来响应任何 HTTP 请求:

// Route::get($uri, $callback);
Route::get('/test', function () {
    echo 'get';
});

// Route::post($uri, $callback);
Route::post('/test', function () {
    echo 'post';
});

// Route::put($uri, $callback);
Route::put('/test', function () {
    echo 'put';
});

// Route::patch($uri, $callback);
Route::patch('/test', function () {
    echo 'patch';
});

// Route::delete($uri, $callback);
Route::delete('/test', function () {
    echo 'delete';
});

// Route::options($uri, $callback);
Route::options('/test', function () {
    echo 'options';
});

// 注册路由响应多个 HTTP 请求
/*
Route::match(['get', 'post'], '/', function () {
    //
});
*/
Route::match(['get', 'post'], '/match', function () {
    echo 'match';
});

// 注册一个路由来响应所有 HTTP 请求:
/*
Route::any('foo', function () {
    //
});
*/
Route::any('/any', function () {
    echo 'any';
});

// 路由参数

// 必选参数
Route::get('/user/{uid}', function ($uid) {
    echo $uid;
});

// 多个路由参数
Route::get('/uid/{uid}/username/{username}', function ($uid, $username) {
    echo $uid.'--'.$username;
});

// 可选参数(在参数名后面加一个?实现,这种情况需要给相应的变量指定默认值)
Route::get('/user1/{uid?}', function ($uid = null) {
    echo $uid;
});

// 正则约束(where方法接收一个参数名和一个正则表达式来约束该参数)
Route::get('/user2/{uid}', function ($uid) {
    echo $uid;
})->where('uid','[0-9]+');

// 正则约束多个参数
Route::get('/uid1/{uid}/username1/{username}', function ($uid, $username) {
    echo $uid.'--'.$username;
})->where(['uid' => '[0-9]+', 'username' => '[a-z]+']);

// 全局约束
/*
 * 1、在/app/Providers/RouteServiceProvider类中的bool方法中定义。
 * 2、使用pattern方法,给想要的路由参数定义全局正则约束。$router -> pattern('uid', '[0-9]+');
 */

// 路由访问控制器 控制器名称@方法名称
// Route::get('user/{id}', 'UserController@showProfile');
Route::get('/index', 'IndexController@index');

// 路由器访问控制器,分文件夹
/*
 * 1、修改命名空间 namespace App\Http\Controllers\Admin;
 * 2、引入继承的Controller use App\Http\Controllers\Controller;
 * 3、修改路由 Admin\IndexController@index
 */
Route::get('/admin', 'Admin\IndexController@index');

// 命名路由
Route::get('/test1', ['as' => 'profile', function () {
    echo route('profile');
    echo '命名路由';
}]);

// 为控制器指定路由名称
Route::get('test2', [
    'as' => 'profile', 'uses' => 'Admin\IndexController@index'
]);

// 使用name方法指定路由名称
Route::get('test3', 'Admin\IndexController@articlelist')->name('profile');

// 路由群组 group
// 路由前缀 profile
// 命名空间 namespace
// 资源路由 resource
// Route::get('admin/index', 'Admin\IndexController@index');
// Route::get('admin/articlelist', 'Admin\IndexController@articlelist');

Route::group(['profile' => 'admin', 'namespace' => 'Admin'], function () {
    Route::get('index', 'IndexController@index');
    Route::get('articlelist', 'IndexController@articlelist');
    Route::resource('article', 'ArticleController');
});




路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

     
    战略合作|联系方式|广告赞助|商务合作|手机版|小黑屋|( 京ICP备14036609号-6 )

GMT+8, 2017-12-15 20:00

© 2013-2017 Powered by Discuz! X3.3. 本站由 又拍云 提供 CDN 图片存储服务

返回顶部