我已经看到了以下功能,我不明白如何选择控制器中的功能?
class ProfilesController extends \BaseController {
public function index() {}
public function create() {}
public function store(){}
public function show($id){}
public function edit($id){}
public function update($id){}
public function destroy($id){}
}
对于 local.com/profiles ,它会调用index()
函数并列出所有配置文件。要查看任何记录 local.com/profiles/99 ,它正在使用show()
方法。
要编辑任何记录 local.com/profiles/99/edit ,它正在使用edit()
。
这些方法是自动创建的吗?请向我推荐任何有助于更好地理解Laravel
的链接或文档。
答案 0 :(得分:1)
提供给您的链接很好理解如何在Laravel
中实现restful url,但您不知道什么是 restful 。
由Laravel
选择的方法命名,它是用于表示每种方法的作用的约定。它被称为CRUD。
现在调用哪种方法取决于HTTP Request Method。
GET /resource index resource.index
GET /resource/create create resource.create
POST /resource store resource.store
GET /resource/{resource} show resource.show
GET /resource/{resource}/edit edit resource.edit
PUT/PATCH /resource/{resource} update resource.update
DELETE /resource/{resource} destroy resource.destroy
为了避免在我们使用CRUD
时出现冗余代码,我们使用resource controller。
您必须将以下路线添加到 routes.php 和您已提供的控制器。
Route::resource('profile', 'ProfilesController');
与写作相同
Route::get('profile', 'ProfilesController@index'));
Route::get('profile/create', 'ProfilesController@create'));
Route::post('profile', 'ProfilesController@store'));
Route::get('profile/{id}', 'ProfilesController@show'));
Route::get('profile/{id}/edit', 'ProfilesController@edit'));
Route::put('profile/{id}', 'ProfilesController@update'));
Route::patch('profile/{id}', 'ProfilesController@update'));
Route::delete('profile/{id}', 'ProfilesController@destroy'));
如果要生成这些行。您可以使用Jeffreys Way generators.
请参阅Teach a Dog to REST以了解我在说什么。
答案 1 :(得分:0)
你可以在Router.php查看github Laravel页面 - > https://github.com/laravel/framework/blob/master/src/Illuminate/Routing/Router.php
检查resourceDefaults和addResource * functions :)
- 当然,请访问Laravel文档> http://laravel.com/docs/controllers您的工作需要信息..
答案 2 :(得分:0)
我假设您正在使用资源控制器http://laravel.com/docs/controllers#resource-controllers。