我有一个问题,每当我更新一个文件,它总是会错误出未知变量[Fname]这是我的控制器中的更新函数
public function update(Request $request, $PaperID)
{
$request->validate([
'PaperTitle' => 'required',
'PaperType' => 'required',
'file' => [
'required',
File::types('pdf')
->max(12 * 1024),
],
]);
$paper=Papers::find($PaperID);
$file=$request->file;
$filename=time().'.'.$file->getClientOriginalExtension();
$request->file->move('assets', $filename);
$paper->file=$filename;
$paper->PaperTitle=$request->PaperTitle;
$paper->PaperType=$request->PaperType;
$paper->College=$request->College;
$paper->DateCompleted=$request->DateCompleted;
$paper->ContentAdviser=$request->ContentAdviser;
$paper->update();
$input = $request->all();
if(count($input['Fname']) > 0){
for($i = 0 ; $i < count($input['Fname']) ; $i++){
$author->Fname = $input['Fname'][$i];
$author->Lname = $input['Lname'][$i];
$author->update();
}
}
return redirect()->back()->with('success','File has been updated.');
}
存储工作正常,但更新不如何解决这个问题?我希望这两个论文和作者表将更新论文更新好,但作者不
1条答案
按热度按时间n53p2ov01#
溶液
使用
$paper->save()
-更新需要不同的参数。尝试以下更新:
$paper->update($request->validated()->except('file'))
(当然,您需要为所有Model属性添加验证)额外学分(PR复习学习备注)
1.代码可读性
首先,在你的
=
周围和你的if
后面添加空格。更好的是,使用一个库(比如php-cs-fixer
)来自动格式化你的代码。2.使用自定义的UpdatePaperRequest
使用自定义请求而不是使用
$request->validate()
有助于组织您的代码。Laravel将验证委托给请求。然后您可以单独测试请求,创建可重用/共享功能(特性/关注点)等......这只是更好地相信我:)