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

时间:2015-11-10 08:56:31

标签: php laravel laravel-5

我遇到了包含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

}

我检查了其他来源,他们提供的解决方案没有奏效。无论我尝试过什么,它总是会回归&#34; 0&#34;而不是在表单中声明的​​值。

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

谢谢!

1 个答案:

答案 0 :(得分:1)

您获得0而不是Science的原因是,Form组件在生成select时,使用数组键作为可用选项的值,将数组值用作字符串,即显示在选择中。您不提供数组键,因此0的密钥为Science1的密钥为Arts

如果您希望将Science/Arts作为Request::get('Area')的值,则需要将数组传递给Form::select(),其中值和键是相同的字符串,例如

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