Laravel - 命名路由(GET,POST,DELETE)同名?

时间:2016-04-23 00:45:46

标签: php laravel

为了让我的生活在一个庞大的网站上更简单,我可以这样做吗?

Route::get('view/{id}', 'PostController@show')->name('post');
Route::delete('view/{id}', 'PostController@delete')->name('post');
Route::post('view/{id}', 'PostController@save')->name('post');

然后以我的形式,我可以做到这一点。

<!-- Delete Form -->
<form method="post" action="{{ route('post', $post->id) }}">
    <input type="hidden" name="_method" value="DELETE">
    <button type="submit">Delete</button>
</form>

<!-- Edit Form -->
<form method="post" action="{{ route('post', $post->id) }}">
    <input type="hidden" name="_method" value="PATCH">
    <button type="submit">Edit</button>
</form>

<!-- Etc -->

我可以这样做吗?这是推荐的吗?

1 个答案:

答案 0 :(得分:1)

是的,实际上您可以使用以下方法来保持路由文件的清洁:https://laravel.com/docs/5.2/controllers#restful-naming-resource-route-parameters

Route::resource('foobar', 'FooBarController');

这将自动为您生成RESTful路线:

如果您运行php artisan route:list,则可以看到所有HTTP路由。