Вызов функции-члена save () для null: ПРОБЛЕМА В ОБНОВЛЕНИИ - PullRequest
0 голосов
/ 30 сентября 2019

Я не могу обновить свою запись, используя foreach

ScoreController.php

public function updateScore(Request $request, $id)
{
     foreach ($request->score as $key => $id) {

        $scores =  Score::find($request->score[$key]); 
        $scores->save();
        }
    //dd($request->all());
    return redirect('/tabulation')->with('status', 'Score added!');
}

Blade

@foreach ($scores as $score)
<label for="{{$score->id}}" value="{{$score->id}}"></label>
<input type="text" name="score[]" value="{{$score->score}}"/>
@endforeach

1 Ответ

1 голос
/ 30 сентября 2019

Прежде всего, элементы <label> не имеют атрибута value:

<label for="{{ $score->id }}" value="{{ $score->id }}"></label>

То, что value="{{ $score->id }}" ничего не делает и не отправляется на сервер. Если вы хотите отправить идентификатор счета на сервер, введите его в поле ввода:

@foreach($scores AS $score)
<input type="text" name="scores[{{ $score->id }}]" value="{{ $score->score }}"/>
@endforeach

Далее, в вашем контроллере, получите доступ к своим переменным правильно:

foreach($request->input("scores") AS $id => $scoreValue){
  $score = Score::find($id);
  $score->score = $scoreValue;
  $score->save();
}

Причина, по которой выCall to a member function save() on null означает, что вы пытаетесь найти Score с идентификатором того, что содержит $score->score. Вы не передаете или не ссылаетесь на id правильно.

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