Laravel 5 - 插入多个用户

时间:2016-02-04 10:42:53

标签: laravel laravel-5 laravel-5.1

我有一个简单的用户 - 部门关系。我的用户模型具有以下

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。

我错过了一些明显的东西吗?

2 个答案:

答案 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'));