【发布时间】:2016-05-16 20:56:06
【问题描述】:
我在 Laravel 上苦苦挣扎。我有一个非常奇怪的问题,我没有选择:
我的表单部分看起来:
<?php $listadzialow = \App\Dzial::lists('nazwa_dzialu')->toArray();
var_dump($listadzialow);
?>
<div class="form-group">
{!! Form::label('jakidzial','Jaki dział:') !!}
{!! Form::select('jakidzial',$listadzialow,null,['placeholder'=>'Do jakiego działu należy','class'=>'form-control','id'=>'dzialselect']) !!}
</div>
<!-- Submit form button for Dodaj cykl -->
<div class="form-group">
{!! Form::submit('Dodaj cykl',['class'=>'btn btn-primary form-control']) !!}
“提交”后,它转到我有功能的控制器:
public function store()
{
$input = Request::all();
$id = Request::get('dzialdlacyklu');
$nazwa_cyklu = Request::get('nazwa_cyklu');
var_dump($input);
}
我的表单看起来: my test form
但问题是在 var_dump($input) 我看到:
array(3) { ["_token"]=> string(0) "" ["nazwa_cyklu"]=> string(12) "kolejny cykl" ["jakidzial"]=> string(1) "0" }
这意味着提交后,传递的是值字段而不是选项文本(在我的示例字符串“Dzial”中)。
- 这是 php/laravel/eloquent/collective 中的预期行为吗?
- 我的选择中只有一个选项,所以我在某处读到使用 toArray 方法可以让您获得正确的元素 id 而不是数组索引。对于第一个元素,它应该读取“1”而不是“0”,我想要这个,因为在我的数据库中,我的主键从 1 自动递增。当我查看源代码时:
<select class="form-control" id="dzialselect" name="jakidzial"><option selected="selected" value="">Do jakiego działu należy</option><option value="0">Dział</option></select>
所以看起来第一个选项是空的。 如果我不清楚,请原谅我。如果有任何问题,我会尽力澄清。
【问题讨论】:
-
"这是 php/laravel/eloquent/collective 中的预期行为吗?"实际上,这是 HTML 的预期行为。如果您想发送实际的文本值(我不是它的忠实粉丝),您还需要将文本值设置为键,或者制定其他解决方案。另外,这是一个很好的例子,说明了为什么用英语编写代码很好。如果您的代码易于阅读,其他人会更容易帮助您。我们大多数人都不会说话……我猜是波兰语? :)