我有这个方法更新来更新属于另一个数据(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]的查询结果。我的问题是如何使我的更新方法工作?谢谢..
答案 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']
。
我希望它有所帮助。