路由的基本格式
Route::get('/', function() { //指的是访问根目录 然后返回Hello World
return 'Hello World';
})
路由常用写法
//这个指访问主页的create页面 会调用Article控制器下的create方法
Route::get('/create','ArticleController@create');
//提交表单 action的位置为Article控制器下的store方法里
Route::post('/store','ArticleController@store');
路由传参
//指的是点击show链接 将一个参数传给Article控制器下的show方法
Route::get('/show{id}','ArticleController@show');
//一般show方法就会这么写
public function show($id) { //这个$id就是链接后面跟的参数
//利用这个id 做点事情好吧...
}
路由的方法大总
//我们上面的方法相当于这里的回调函数。
Route::get($uri, $callback);
Route::post($uri, $callback);
Route::put($uri, $callback);
Route::patch($uri, $callback);
Route::delete($uri, $callback);
Route::options($uri, $callback);
为路由命名
方法一:
Route::any('/create',[
'use' => 'ArticleController@create', //回调函数
'as' => 'Article-create' //命名
]);
方法二:
Route::any('/create','ArticleController@create')->name('Article-create');
//命名的作用是为了在重定向或者其他的时候 很容易找到路由的url地址
$url = route('Article-create');
return redirect()->$url; //这样就很方便跳转了
//如果地址有参数的话,还可以在后面直接加参数key=>value
Route::get('/article/{id}/edit', ‘ArticleController@edit‘)->name('edit');
return redirect()->route('edit', ['id'=>$id]);
路由分组
作用1 - - - 中间件
//比如在做登录认证的时候 一般就会用到 auth 的中间件
Router::group(['middleware'=>'auth'], function() {
Route::get('admin/index', 'Admin/IndexController@index')
});
//这样别人就必须登录了 才能进到后台界面 把所有的都可以调到这个路由组里
作用2- - - 路由前缀
群组属性 prefix 可以用来为群组中每个路由添加一个给定 URI 前缀
//比如做后台管理系统 我么就可以给路由添加一个路由前缀 admin
Route::group(['prefix'=>'admin'], function() {
Route::get('index', 'IndexController@index' ) //注意看 并没有加前面的admin
//访问的时候 还是需要(假设根目录叫做shop.dev) 访问 shop.dev/admin/index
//这样才能访问到这个路由
});
作用3- - - 命名空间
比如 在控制器文件夹下肯定有多个控制器,为了避免名称的冲突我们可以给路由命名空间
// 注意Admin是Controllers下的第一个文件夹
Route::group(['namespace'=>'Admin'], function() {
...
});