Не обновляет базу данных и не выдает ошибку в laravel - PullRequest
0 голосов
/ 21 мая 2019

У меня проблема при обновлении пользователя. Когда я пытаюсь обновить пользователя после нажатия кнопки «Сохранить», он перенаправляет меня на ту же страницу и не выдает никаких ошибок, но также ничего не обновляет в базе данных. Ниже мой код. Я понятия не имею, что здесь происходит. Помоги мне:)

Контроллер

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 голосов
/ 21 мая 2019

Проверьте $ заполняемые поля в модели, как указано выше. Если ошибка не устранена, проверьте журнал laravel в хранилище / logs / laravel.log.

0 голосов
/ 21 мая 2019

В контроллере:

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());
    }
}
0 голосов
/ 21 мая 2019

Убедитесь, что у вас есть свойства $fillable в моделях Photo и Report, в противном случае методы create() и update() не будут работать должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...