@supercoder666

Почему не передается переменная в контроллер из формы?

Не передается переменная из формы в контроллер. dd() показывает, что переменная ничего не получает.

Код из шаблона:
<form action="{{ route('setTopic'}}" method="post" enctype="multipart/form-data">   
@csrf            
<div class="select-box">
<label for="select-box1" class="label select-box1"><span class="label-desc">Choose topic</span></label><button type="submit" class="btn btn-outline-success">Save</button>
<select id="select-box1" class="select" name="selectSetTopic">
@foreach($dataCategories  as $topic)
<option value="{{$topic->id}}">{{ $topic->name }}</option>
@endforeach
</select>
</div>
</form>

Код из контроллера:
public function setTopic(Request $selectSetTopic) {
dd($selectSetTopic);
return redirect()->route('post')->with('success', 'Ok!');
}
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
Зачем называть так переменные ? Почему не оставить стандартное имя. Тем более что оно точно отображает сущность (это я про $request).

public function setTopic(Request $request) {
  $selectSetTopic = $request->input('selectSetTopic');
  dd($selectSetTopic);
  return redirect()->route('post')->with('success', 'Ok!');
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kandrash
Кратко о себе
Почему вы решили что переменные запроса передаются и биндятся в контроллере по имени класса? Сергей delphinpro вам все верно ответил.

Вашим способом вы можете получать значения из URL
// Роут
Route::get('models/{model}',  ...);

// Контроллер
public function show(Model $model)
{
    // ...
}

А реквест, будьте добры, называть реквестом.
public function show(Request $request)
{
    dd($request->input('selectSetTopic'));
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы