Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel4在数据库中存储索引而不是值_Php_Mysql_Laravel - Fatal编程技术网

Php Laravel4在数据库中存储索引而不是值

Php 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

您好,我想在数据库中保存一些数据。我已经创建了一个表单,并且从表单中获取数据到控制器,并保存在数据库中。问题在于,它不是保存用户键入的值,而是保存该值在下拉列表中的顺序。 create.blade.php

{{ 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');