如何将所选项目添加到 mysql 数据库 Laravel Schema Builder?

How to add selected item into mysql database Laravel Schema Builder?

我用了webpatser/laravel-countries

在我的控制器中

$countries= DB::table('countries')->lists('name');

到我表格中的select国家列表我得到了所有国家

{!! Form::select('country',$countries,null) !!}

在我的架构中现在我有这样的

$table->string('country');

我可以 select 国家但是当我提交国家栏空白。有什么想法吗?

编辑 2:

您的插入内容需要如下所示:

DB::table('users')->insert(
    ['country' => 'Canada']
);

https://laravel.com/docs/5.2/queries#inserts


编辑:如果您想提交国家名称的字符串,那么您需要将该字符串作为数组中的键。像这样:

$countries= DB::table('countries')->lists('name', 'name');

虽然这不是数据库关系的典型用法。我希望用户 table 有一个 country_id 整数字段与国家/地区的 id 字段相匹配。这就是我原来的答案(下面)所涵盖的内容。


原文:

您需要 $countries 数组中的 ID。我敢打赌,现在您的 ID 相差一个,从 0 开始,而不是像您的数据库中那样从 1 开始。

$countries= DB::table('countries')->lists('name', 'id');

在 laravel 中保存关系有不同的方法,但实际上我更喜欢尽可能跳过它并直接保存到 country_id 字段。

{!! Form::select('country_id',$countries,null) !!}

但这取决于你们的关系是如何建立的。以及您的储蓄方式。显示所有代码!