laravel update函数更新除1之外的所有内容

时间:2015-12-04 08:34:00

标签: function laravel

所以我在我的应用程序中遇到了一个错误。当我想要更新项目时,所有内容都会顺利更新。除了一个输入。 projectnaam不会改变。在flashdata中,我在成功后发送显示已更改的projectnaam,但在我检查数据库后,除了projectnaam

之外,所有内容都已更改

我的代码:

public function updateProject(Request $request){
        $input = $request->input('projectnaam');
        $data = array(
            'titel'  => $request['titel'],
            'status'     => $request['status'],
            'prioriteit'  => $request['prioriteit'],
            'soort'   => $request['soort'],
            'projectnaam'  => $request['projectnaam'],
            'projecturl'  => $request['projecturl'],
            'gebruikersnaam'  => $request['gebruikersnaam'],
            'wachtwoord' => bcrypt($request['wachtwoord']),
            'omschrijvingproject' => $request['omschrijvingproject'],
        );
        Project::where('projectnaam', '=', $input)->update($data);
        $request->session()->flash('alert-success', 'Project '. $request['projectnaam']. ' veranderd.');
        return redirect('/projectmuteren');
    }

我希望你们中有人看到我的错误:P

2 个答案:

答案 0 :(得分:1)

您在课程'projectnaam'的{​​{1}}数组中未包含$fillable

答案 1 :(得分:1)

您没有在代码中更新projectnaam,因为没有更新内容。为简洁起见,我将从您的示例中删除3行代码。

$input = $request->input('projectnaam');

'projectnaam'  => $request['projectnaam'],

Project::where('projectnaam', '=', $input)->update($data);

$request->input('projectnaam');$request['projectnaam']相同。因此,$input也等于$request['projectnaam']

换句话说,您正在根据提供的projectnaam值查找项目。那你就是"更新"它具有完全相同的值,因此无需更新。两者是同一个。

更具体地说,让我们为它赋值1.您正在搜索projectnaam等于1的项目,然后"更新"它的值为1,所以很自然地没有更新。