Laravel 路由详解及使用

浏览577

1565779440501487.png

Laravel 路由详解及使用,laravel完美支持HTTP1.1中的方法

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

第一种:Route类  静态方法  url路径  回调函数

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

第二种:Route类  静态方法  url路径  控制器  行为

Route::get('/','[控制器]@[行为]');
Route::get('/posts','\App\Http\Controllers\PostController@index');

问题1,如果我这个路由posts我希望它所有方式都支持,那就用 any;

Route::any('/posts','\App\Http\Controllers\PostController@index');

问题2,如果我这个路由posts我希望它 get 和 post 方式都支持,那就用 match;

Route::match(['get','post'],'/posts','\App\Http\Controllers\PostController@index');

html只支持表单get和post使用:

<form action="/posts" method="post">

</form>

如果其他可以加隐藏域

<form action="/posts" method="post">
   <input type="hidden" name="_method" value="PUT"/>
</form>

<input type="hidden" name="_method" value="PUT"/>

等价于

{{method_field("PUT")}}

问题3,传递id

Route::get('/posts/{$id}','\App\Http\Controllers\PostController@index');

第三种:路由分组功能

Route::group('prefix'=>'post',function(){
    Route::get('/','\App\Http\Controllers\PostController@index');
    Route::post('/create','\App\Http\Controllers\PostController@index');
    Route::get('/{$id}','\App\Http\Controllers\PostController@index');
});

第四种:绑定模型

Route::get('/posts/{$post}','\App\Http\Controllers\PostController@show');

方法使用:

function show(\App\Post\$post){
    
}



  • 暂无任何回答