php 如何正确更新论文和作者表

41zrol4v  于 2022-12-02  发布在  PHP
关注(0)|答案(1)|浏览(142)

我有一个问题,每当我更新一个文件,它总是会错误出未知变量[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.');

    }

存储工作正常,但更新不如何解决这个问题?我希望这两个论文和作者表将更新论文更新好,但作者不

n53p2ov0

n53p2ov01#

溶液

使用$paper->save()-更新需要不同的参数。
尝试以下更新:$paper->update($request->validated()->except('file'))(当然,您需要为所有Model属性添加验证)

额外学分(PR复习学习备注)

1.代码可读性

首先,在你的=周围和你的if后面添加空格。更好的是,使用一个库(比如php-cs-fixer)来自动格式化你的代码。

2.使用自定义的UpdatePaperRequest

使用自定义请求而不是使用$request->validate()有助于组织您的代码。Laravel将验证委托给请求。然后您可以单独测试请求,创建可重用/共享功能(特性/关注点)等......这只是更好地相信我:)

相关问题