如何在Laravel Controller中获取选择选项文本

时间:2017-06-01 20:53:24

标签: php laravel laravel-5 blade laravel-blade

我正在使用Laravel 5.4,我有一个带有post方法的表单,里面有一个带有一些选项的select

<select name="selection-list">
    <option value="1">A</option>
    <option value="2">B</option>
    <option value="3">C</option>
</select>

如果我使用

echo $request->input('selection-list');

我只获得了所选选项的值,但我想要所选选项标签之间的文本。

如何在Laravel中执行此操作?

2 个答案:

答案 0 :(得分:3)

这实际上不是一个Laravel的东西,它更像是一个基本的HTML表单。浏览器仅发送所选选项的值。这是预期的行为。

您需要将值的服务器端映射到文本:

$selectionOptions = [1 => 'A', 2 => 'B', 3 => 'C'];
$selected = $selectionOptions[$request->input('selection-list')];

或者您可以更新HTML以将文本作为值

<select name="selection-list">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>

任何一个选项都应该没问题。这实际上取决于项目的其余部分。如果您已经在服务器上有映射(这通常用于首先动态生成HTML元素),那么第一个选项可能更有意义。否则第二个可能更容易。

答案 1 :(得分:0)

您不需要获取选择框的文本选项,只需获取该选择选项的值即可,现在您可以获取此选项表单数据库 只是李

<select name="brand" style="margin-bottom: 20px !important;" class="custom-select mr-sm-2" >
    @foreach($brands as $id => $name)
    <option value="{{ $id }}">{{ $name }}</option>
    @endforeach
</select>

并在您的控制器中

$request->brand