更新相关数据Laravel 5

时间:2016-09-06 05:48:31

标签: laravel laravel-5

我有这个方法更新来更新属于另一个数据(edisi数据)的数据(jurnal data),下面是代码:

public function update(Jurnal $jurnal, JurnalRequest $request) {
        $input = $request->all();
        if ($request->hasFile('file') && $request->file('file')->isValid()) {
            // Delete old file
            $this->hapusPDF($jurnal);

            // Upload new file
            $input['file'] = $this->uploadPDF($request);
        }
        $id = $request->id; //retrieve id edisi

        $jurnal = Edisi::findOrFail($id)->jurnal()->update($input);
        return redirect()->route('edisi', ['id' => $id]);
    }

上面的方法给了我这个错误:没有模型[App \ Edisi]的查询结果。我的问题是如何使我的更新方法工作?谢谢..

3 个答案:

答案 0 :(得分:1)

您正在使用findOrFail($id)并且找不到id = $id的任何行,因此它会抛出异常。你可以这样做:

$edisi = Edisi::find($id);
if (!is_null($edisi)) {
    $jurnal = $edisi->jurnal()->update($input);
} else {
    echo 'There is no edisi with ID = '.$id;
    die();
}

答案 1 :(得分:1)

假设您要更新单个journal$jurnal要更新journal id,则更新语句如下所示:

$jurnal = Jurnal::findOrfail($jurnal->id)->update($input);

答案 2 :(得分:0)

我认为您没有使用

检索任何ID
$request->id

你应该使用

$request->get('id') // And you must ensure that there is an input with 'id' name comming from client

您也可以使用$input['id']。 我希望它有所帮助。