У вас еще нет объекта ученика для запроса.Таким образом, когда вы просите найти всех студентов в базе данных, которые имеют уровень, соответствующий $student->level
, он всегда потерпит неудачу с неопределенной переменной.У вас нет объекта $student
, чтобы вытащить уровень из него.Я предполагаю, что именно поэтому вы выполняете запрос в первую очередь: чтобы получить всех студентов на уровне, запрошенном в форме (через $request
).
Если вы хотите, чтобы все студенты в базе данных былиУровень, отправленный из формы, вы можете запросить следующим образом:
$students = Student::where("level", $request->get('level'))->get();
Это вернет коллекцию студентов любого уровня, отправленных через объект $request
в этот метод.
Если вы просто хотите, чтобы какой-либо ученик этого уровня (неважно, какой именно, если его уровень равен тому, что $ request отправил из формы), вы можете использовать эту строку:
$student = Student::where("level", $request->get('level'))->first();
Это даст вам один объект учащегося.
Я не уверен, хотите ли вы найти учащегося по уровню или по идентификатору, поскольку ваши параметры для метода обновления включают в себя оба:
public function update(Request $request, $id){...}
Если вы искали конкретного студента только по идентификатору, вы можете использовать:
$student = Student::find($id);
Это даст вам точного студента, которого вы искали, исходя из id
.Ничто другое не имеет значения (не уровень) - это точное совпадение с одним студентом на основе id
.