在laravel中不更新数据库也不抛出错误

时间:2019-05-21 11:06:43

标签: laravel

更新用户时出现问题。当我单击“保存”按钮后尝试更新用户时,它会将我重定向到同一页面,不会引发任何错误,但也不会更新数据库中的任何内容。下面是我的代码。我不知道这是怎么回事。帮帮我:)

控制器

public function update(ReportRequest $request, $id)
{
    $report = Report::findOrFail($id);
    $input = $request->all();

    if ($file = $request->file('photo_id')) {
        $name = time() . $file->getClientOriginalName();
        $file->move('images', $name);
        $photo = Photo::create(['file' => $name]);
        $input['photo_id'] = $photo->id;
    }

    $report->update($input);

    return redirect()->back();
}

路线

Route::resource('admin/reports', 'ReportController', ['names'=>[

    'index'=>'admin.reports.index',
    'create'=>'admin.reports.create',
    'edit'=>'admin.reports.edit',

]]);

模型

class Report extends Model
{
    protected $fillable = [
        'student_id',
        'student_name',
        'class_id',
        'subject',
        'teacher_name',
        'report_categories_id',
        'total_marks',
        'obtained_marks',
        'percentage',
        'position',
        'photo_id',
    ];

    public function photo() {
        return $this->belongsTo('App\Photo');
    }

    public function studentsClass() {
        return $this->belongsTo('App\StudentsClass', 'class_id');
    }

    public function student() {
        return $this->belongsToMany('App\Student');
    }


}

3 个答案:

答案 0 :(得分:0)

确保在$fillablePhoto模型中拥有Report属性,否则create()update()方法将无法正常工作。

答案 1 :(得分:0)

检查模型中如上所述的$ fillable字段。如果错误仍然存​​在,请在storage / logs / laravel.log上检查您的laravel日志。

答案 2 :(得分:0)

在控制器中:

public function update(ReportRequest $request, $id){
    $report = Report::findOrFail($id);
    $input = $request->all();

    try{
        if ($request->photo_id != '') {

            $path = 'images/';
            $file = $request->photo_id;
            $name = time() . $file->getClientOriginalName();
            $file->move($path, $name);

            $photo = Photo::create(['file' => $name]);

            $report->update(['photo_id' => $photo->id]);

        }

        return redirect()->back();
    }catch(\Exception $e){
        return redirect()->back()->with('error_message', $e->getMessage());
    }
}