【问题标题】:Laravel collective form select returns option value - is this ok?Laravel 集体表单选择返回选项值 - 可以吗?
【发布时间】: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”中)。

  1. 这是 php/laravel/eloquent/collective 中的预期行为吗?
  2. 我的选择中只有一个选项,所以我在某处读到使用 toArray 方法可以让您获得正确的元素 id 而不是数组索引。对于第一个元素,它应该读取“1”而不是“0”,我想要这个,因为在我的数据库中,我的主键从 1 自动递增。当我查看源代码时:

&lt;select class="form-control" id="dzialselect" name="jakidzial"&gt;&lt;option selected="selected" value=""&gt;Do jakiego działu należy&lt;/option&gt;&lt;option value="0"&gt;Dział&lt;/option&gt;&lt;/select&gt;

所以看起来第一个选项是空的。 如果我不清楚,请原谅我。如果有任何问题,我会尽力澄清。

【问题讨论】:

  • "这是 php/laravel/eloquent/collective 中的预期行为吗?"实际上,这是 HTML 的预期行为。如果您想发送实际的文本值(我不是它的忠实粉丝),您还需要将文本值设置为键,或者制定其他解决方案。另外,这是一个很好的例子,说明了为什么用英语编写代码很好。如果您的代码易于阅读,其他人会更容易帮助您。我们大多数人都不会说话……我猜是波兰语? :)

标签: php html forms laravel


【解决方案1】:

这是 value 属性在 select 选项上的作用,因此这是任何使用 Select 的预期行为,而不是 Laravel 或 Collective 的问题。

如果您希望选项标签和值具有相同的值,则需要创建一个以该值为键的自定义数组!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 2021-07-28
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    相关资源
    最近更新 更多