Php Laravel4在数据库中存储索引而不是值
您好,我想在数据库中保存一些数据。我已经创建了一个表单,并且从表单中获取数据到控制器,并保存在数据库中。问题在于,它不是保存用户键入的值,而是保存该值在下拉列表中的顺序。 create.blade.phpPhp Laravel4在数据库中存储索引而不是值,php,mysql,laravel,Php,Mysql,Laravel,您好,我想在数据库中保存一些数据。我已经创建了一个表单,并且从表单中获取数据到控制器,并保存在数据库中。问题在于,它不是保存用户键入的值,而是保存该值在下拉列表中的顺序。 create.blade.php {{ Form::open(array('url' => 'cars', 'class'=>'form-horizontal')) }} <div class="form-group"> {{ Form::label('id', 'Color',ar
{{ Form::open(array('url' => 'cars', 'class'=>'form-horizontal')) }}
<div class="form-group">
{{ Form::label('id', 'Color',array('class'=>'control-label col-lg-4')) }}
<div class="col-lg-8">
{{ Form::select('color', $color, null, array('class' => 'form-control')) }}
</div>
</div>
{{ Form::submit('Save', array('class' => 'btn btn-primary')) }}
我做错了什么?关键是改变Arual从以下方面获取颜色的方式:
$color = DB::table('cars')->orderBy('Color', 'asc')->distinct()->lists('Color');
致:
他还问为什么。很难说,我检查了Laravel的源代码,但我应该花更长的时间来研究到底发生了什么。如果未在lists函数中指定id列,则可能会将其作为$key属性。显示您从var_dumpInput::get'color'中获得的内容;字符串'12'length=2,它将值12保存在数据库中,这是因为您将id存储在的value属性中。你也应该在那里储存颜色名称。告诉我你是如何声明$color VARIABLE的好吧,这很奇怪,你得到的颜色是正确的。但试着在列表中添加第二个参数:$color=DB::table'cars'->orderBy'color','asc'->distinct->lists'color','color';因为列出了'value','key'返回数组'key'=>'value',Form::select将该'key'作为html选项值,该值是从表单传递的,而'value'是选项中显示的。所以基本上,只要颜色列中没有重复项,您的解决方案就可以工作。当然,您是对的。但问题是为什么列表'Color'不能正确工作,并使数组'id'=>'Color'是的,答案在我的评论中:它没有存储'id',而是存储简单的数字数组键,而您的解决方案(将passing Color作为第二个参数)覆盖了该数组的数字键,执行OP所需的操作。
$color = DB::table('cars')->orderBy('Color', 'asc')->distinct()->lists('Color');
$color = DB::table('cars')->orderBy('Color', 'asc')->distinct()->lists('Color', 'Color');