路由的配置文件在/app/routes.php
要把网址路由到一个类的方法,可以使用如下方式:
<?php
Route::get('/','App\\Frontend\\IndexController');
当然也可以使用其它请求方式:
<?php
Route::get('/','App\\Frontend\\IndexController');
Route::post('/','App\\Frontend\\IndexController');
Route::put('/','App\\Frontend\\IndexController');
Route::delete('/','App\\Frontend\\IndexController');
分组:
<?php
Route::group(['prefix' => '/backend_2016/','namespace' => '\\App\\Backend'],function(){
Route::get('setting','SettingController@index');
Route::group(['prefix' => 'articles','domain'=>'www.a.com'],function(){
Route::get('/add','IndexController@add');
});
});
这里的prefix
表示前缀,namespace
表示当前分组中类的命名空间。
组内还可以有小分组。
如上。它的网址会被表示为/backend_2016/articles/add
,它的命名空间为上面提到的\\App\\Backend
。当然,也可以在本分组中表示自己的命名空间。
domain
还没有实现。
数字参数用(:num)
表示,如下。
<?php
Route::get('/article/(:num).html','App\Frontend\ArticleController@show');
系统会将数字参数作为方法的参数传给方法。
<?php
namespace App\Frontend;
class ArticleController{
public function show( $id ){
echo $id;
}
}
当我们访问网址/article/1985.html
时,程序会实例化ArticleController
并把1985
传递给show($id)
这个方法。
<?php
Route::get('/article/(:any)/(:num).html','App\Frontend\ArticleController@category');
这里两个参数会传给category
方法,如下:
<?php
public function category( $ctgName, $ctgId ){
echo 'ctg name:' . $ctgName . ' , ctg id:'. $ctgId;
}
当然,还可以使用正则表达式。
<?php
Route::get('/regex/([a-z]+)/([0-9]+).html','App\Frontend\ArticleController@regex');