У меня есть форма с кучей входных данных для отправки, каждый вход имеет уникальное имя, теперь я хочу проверить контроллер, на котором щелкают входные данные.
Форма
<input type="submit" name="button_1" value="1">
<input type="submit" name="button_2" value="2">
<input type="submit" name="button_3" value="3">
<!-- and more submit inputs -->
В контроллере я использую if else, чтобы проверить, какой ввод нажимается, например, я могу использовать это
if ($request->input('button_1'))
{$message = '1'; // and more code
}
elseif ($request->input('button_2'))
{$message = '2'; // and more code
}
elseif ($request->input('button_3'))
{$message = '3'; // and more code
}
// ...
Или я могу использовать это
if ($request->has('button_1')) {$message = '1';}
elseif ($request->has('button_2')) {$message = '2';}
elseif ($request->has('button_3')) {$message = '3';}
// ...
Есть ли лучший способ проверить, какой ввод отправки нажимается, например, метод переключения , потому что это сделает логику записи намного проще и чище, но я не мог этого понять.
2 ответа
Вы можете включить true
:
switch (true) {
case $request->has('button_1'):
// do something
break;
case $request->has('button_2'):
// do something else
break;
case $request->has('button_3'):
// do something
break;
}
Вы можете установить имя для кнопок отправки и проверить отправленное значение с помощью переключателя:
<form action="" method="POST">
<!-- fields -->
<button type="submit" name="submit_btn" value="1">Save</button>
<button type="submit" name="submit_btn" value="2">Preview</button>
<button type="submit" name="submit_btn" value="2">Advanced edit</button>
</form>
switch ($request->input('submit_btn')) {
case '1':
// do something
break;
case '2':
// do something
break;
case '3':
// do something
break;
}
Похожие вопросы
Новые вопросы
laravel
Платформа Laravel — это веб-инфраструктура PHP с открытым исходным кодом, которая позволяет разработчикам создавать динамические и масштабируемые веб-приложения. Исходный код Laravel размещен на GitHub и выпущен под лицензией MIT.