Laravel从控制器中获取Select的值(对我来说,它只是返回0)


Laravel get value of Select from Controller (It is just returning 0 for me)

在获取Select的值时遇到了障碍。

请看一下我的表格:

{!! Form::open(array('action' => 'MasterController@datamaker')) !!}
{!! Form::select('Area', array('Science', 'Arts',)); !!}
{!! Form::input('date', 'Year') !!}
{!! Form::submit('Add') !!}

以下是我在控制器中的(简化)方法:

public function datamaker() {
    $input = Request::all();
    $Database = new Database;
    $Database -> Area = Request::get('Area');
    $Database -> Year = $input['Year'];
    $Database -> save();
    return (Request::get('Area'));  <----- This is returning "0" instead of the values declared in the form
}

我已经检查了其他来源,他们提供的解决方案没有奏效。无论我尝试过什么,它总是只返回"0",而不是表单中声明的值

有人能给我指正确的方向吗?

谢谢!

之所以得到0而不是Science,是因为Form组件在生成select时,将数组键用作可用选项的值,并将数组值用作select中显示的字符串。您不提供数组密钥,因此Science的密钥为0Arts的密钥为1

如果您想从Request::get('Area')获得Science/Arts作为值,您需要向Form::select()传递一个数组,其中值和键是相同的字符串,例如

Form::select('Area', ['Science' => 'Science', 'Arts' => 'Arts']);