静态路由方法和#34;资源"之间的区别是什么?和"控制器"
Route::controller()
和
Route::resource()
感谢,
答案 0 :(得分:6)
我得到了一些东西:
Route::resource()
但
Route::controller()
答案 1 :(得分:1)
您可以在官方文档中阅读此内容:
http://laravel.com/docs/controllers#restful-controllers
Route::controller()
它将声明您定义的所有路由作为从html谓词开始的函数,例如文档:
Route::controller('users', 'UserController');
class UserController extends BaseController {
public function getIndex()
{
//
}
public function postProfile()
{
//
}
public function anyLogin()
{
//
}
}
另一方面:
http://laravel.com/docs/controllers#resource-controllers
Route::resource()
基本上在使用artisan的create controller命令时使用:
php artisan controller:make PhotoController
它将生成artisan命令生成的所有路由,基本上是crud routes。
希望它对你有所帮助。
答案 2 :(得分:1)
以下是执行这两项操作时发生的路由:
Route::controller('test', 'TestController');
Route::resource('othertest', 'OtherTestController');
这是一张我即将为您撰写文章的图片,如果它更容易:
以下是一体化。例如,如果您GET
到laravel_dir/test/page
,它会在getPage()
中查找方法TestController
。如果您POST
到laravel_dir/test/page
,它会查找postPage()
URI :GET | HEAD | POST | PUT | PATCH | DELETE test / {_ missing}
路线名称:无
操作:TestController @ missingMethod
以下是资源路由的结果......您将看到它对于routes.php文件的一行中的CRUD非常有用。
URI :GET | HEAD othertest
路线名称:othertest.index
动作:OtherTestController @ index
URI :GET | HEAD othertest / create
路线名称:othertest.create
动作:OtherTestController @ create
URI :POST othertest
路线名称:othertest.store
操作:OtherTestController @ store
URI :GET | HEAD othertest / {othertest}
路线名称:othertest.show
动作:OtherTestController @ show
URI :GET | HEAD othertest / {othertest} / edit
路线名称:othertest.edit
操作:OtherTestController @ edit
URI :PUT othertest / {othertest}
路线名称:othertest.update
操作:OtherTestController @ update
URI :PATCH othertest / {othertest}
路线名称:othertest.update(与上面共享名称)
操作:OtherTestController @ update
URI :DELETE othertest / {othertest}
路线名称:othertest.destroy
动作:OtherTestController @ destroy
答案 3 :(得分:0)
此方法自动检测“GET”,“POST”,“PUT / PATCH”,“DELETE”方法。
Route::resource()
此方法自动检测来自URL的参数
Route::controller()