Как добавить выбранный элемент в базу данных MySQL Laravel Schema Builder?
Я использовал webpatser / laravel-страны
в моем контроллере
$countries= DB::table('countries')->lists('name');
выбрать список стран в моей форме я получил всю страну
{!! Form::select('country',$countries,null) !!}
в моей схеме сейчас у меня так
$table->string('country');
я могу выбрать страну, но когда я отправляю столбец страны пустым. любая идея?
1 ответ
Изменить 2:
Ваша вставка должна выглядеть так:
DB::table('users')->insert(
['country' => 'Canada']
);
https://laravel.com/docs/5.2/queries
Редактировать: если вы хотите отправить строку с названием страны, вам нужна строка, которая будет ключом в вашем массиве. Как это:
$countries= DB::table('countries')->lists('name', 'name');
Это не типичное использование отношений с базой данных. Я ожидаю, что в пользовательской таблице будет целое поле country_id, соответствующее полю id в странах. Это то, что охватывает мой оригинальный ответ (ниже).
Оригинал:
Вам понадобится идентификатор в вашем массиве $ стран. Бьюсь об заклад, сейчас ваши идентификаторы отключены на один, начиная с 0 вместо 1, как в вашей БД.
$countries= DB::table('countries')->lists('name', 'id');
Есть разные способы сохранить отношения в laravel, но я действительно предпочитаю пропустить это, когда это возможно, и сохранить непосредственно в поле country_id.
{!! Form::select('country_id',$countries,null) !!}
Но это зависит от того, как настроены ваши отношения. И как вы экономите. Показать весь код!