Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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 更改Laravel 5.4中的起始选择值_Php_Forms_Select_Laravel 5 - Fatal编程技术网

Php 更改Laravel 5.4中的起始选择值

Php 更改Laravel 5.4中的起始选择值,php,forms,select,laravel-5,Php,Forms,Select,Laravel 5,我正在使用Laravel 5.4,并尝试使用以下代码制作选择表单: {{ Form::select('country', App\Countries::all()->pluck('en_title'), old('country', $user->country), array('class' => 'form-control') ) }} 我收到的结果是: <select name="country" class="form-control"> <

我正在使用Laravel 5.4,并尝试使用以下代码制作选择表单:

{{ Form::select('country', App\Countries::all()->pluck('en_title'), old('country', $user->country), array('class' => 'form-control') ) }}
我收到的结果是:

<select name="country" class="form-control">
     <option value="0">a</option>
     <option value="1">b</option>
     <option value="2">c</option>
     <option value="3">d</option>
     ...
</select>
问题是数据库中没有值0,因此我希望从值=1开始,如下所示:

<select name="country" class="form-control">
     <option value="1">a</option>
     <option value="2">b</option>
     <option value="3">c</option>
     <option value="4">d</option>
     ...
</select>

我应该换什么?我阅读了所有可能的内容,但没有人尝试使用特定的函数来执行此操作,或者使用此函数无法执行此操作?

您可以在拨动时指定键。在你的情况下是这样的

{{ Form::select('country', App\Countries::all()->pluck('en_title', 'id'), old('country', $user->country), array('class' => 'form-control') ) }}
这将导致一个数组,如

[1 => 'United Kingdom', 2 => 'United States']
其中,密钥是国家的ID

除上述内容外,还将选择“全部”,然后从生成的数据集中提取所需的数据。您可以使用Pulk来代替为您构建select并只获取相关字段的all。比如说

App\Countries::pluck('en_title', 'id')
另外,您可能应该在控制器中创建国家列表,而不是在视图中调用数据库。在您看来,这将简化代码,而且通常是更好的实践


我还有一个问题。我如何将其与另一个数据库表一起使用?例如,我有一个带有id和country的表,但我正在提取用户表,其中字段country是国家的id,而不是名称。我怎样才能把它们拼凑在一起,显示出国家的名称而不是唯一的国家id?我不确定我是否理解你的要求。我建议你问一个新问题,这样你就可以更好地描述你在评论部分之外想要做的事情。我怀疑你需要在用户模型上创建一个国家关系,所以你使用$user->country->name,但我还是不完全确定你的意思是什么。这是正确的,在我选择表单时如何使用?
// Controller 
$countries = \App\Countries::pluck('en_title', 'id');

return view('viewname')->withCountries($countries);

// View

{{ Form::select('country', $countries, old('country', $user->country), ['class' => 'form-control'] ) }}