我的页面上有两个按钮, 点击时有不同的行为. 目前我的路由和控制器是这样设置的...
routesweb.php
Route::post('/users/button1clicked', 'UsersController@button1clicked');
Route::post('/users/button2clicked', 'UsersController@button2clicked');
apphttpcontrollersUsersController.php
class UsersController extends Controller
{
public function button1clicked(Request $request){
//Do something
}
public function button2clicked(Request $request){
//Do something else
}
}
它工作了......但我不认为我的控制器遵循了正确的惯例,因为控制器应该只有标准动作(索引、创建、存储、显示、编辑、更新、销毁)。
对我来说,什么是更好的结构化代码的方式?
每个按钮的作用是什么?例如,如果按钮提交一个表单来 "保存 "一个实体(比如说博客应用中的 "帖子"),那么表单动作可以直接进入到 PostController@store
. 如果点击按钮的目的是为了显示一个html表格来创建一个帖子,那么它可能会导致 PostController@show
. 下面的表格来自Laravel文档, 可以帮助你.路由定义约定
另请参见 https:/laravel.comdocs7.xcontrollers#restful-naming-resource-route-parameters。.
如果你使用ajax或axios来进行异步调用,那么你可以使用按钮事件(例如on-click)来调用一个函数,该函数可以进行post(或任何其他异步调用到相关的控制器方法( PostController@store
). 如果你想要一个例子,请告诉我。