我有一个简单的用户 - 部门关系。我的用户模型具有以下
public function department() {
return $this->belongsTo('App\Department', 'departmentId');
}
我的部门模型
public function user() {
return $this->hasMany('App\User');
}
目前我正在与各部门合作。我的索引函数如下所示
public function index() {
$departments = Helper::returnDepartmentsFromLdap();
return view('departments.index', compact('departments'));
}
它基本上从LDap(Active Directory)获取所有部门并显示它们。在部门的索引页面上,我有
{!! link_to_route('departments.updateDepartments', 'Update Database', null, array('class' => 'btn btn-info')) !!}
因此,如果将新部门添加到我们的服务器,则可以更新数据库。我没有创建功能,因为它不需要。
无论如何,目前,我的路线是这样的
Route::model('departments', 'Department');
Route::bind('departments', function($value, $route) {
return App\Department::whereId($value)->first();
});
Route::resource('departments', 'DepartmentsController', ['except' => ['show', 'edit', 'create', 'delete', 'update', 'destroy']]);
Route::post('departments/updateDepartments', array('as' => 'departments.updateDepartments', 'uses' => 'DepartmentsController@updateDepartments'));
在我的updateDepartments函数中,我现在只是执行以下操作
public function updateDepartments()
{
dd("TEST");
}
如果我点击索引页面上的按钮来更新数据库,这应触发上述内容,我看到一个MethodNotAllowedHttpException。
我错过了一些明显的东西吗?
答案 0 :(得分:1)
Route::post('departments/updateDepartments', ...)
表示您只允许该路由上的POST请求。确保表单方法是POST而不是索引页上的GET(默认)
答案 1 :(得分:1)
尝试使用get: 因为您只能使用链接link_to_route
的get方法传递数据Route::get('departments/updateDepartments', array('as' => 'departments.updateDepartments', 'uses' => 'DepartmentsController@updateDepartments'));