Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Доброго времени суток форумчане. Начинаю изучать laravel, сходу не осилил множественные отношения, прошу помощи ).
Ситуация, есть стандартная таблица users и есть таблица user_countries (id,name). Задача, каждому пользователю может быть назначено много стран. В итоге должна получится третья таблица в которой, хранятся user_id и id страны, разрешенной пользователю.
Сделал вот такой view для редактирования пользователя и назначенных ему стран:
@extends('admin_template')
@section('content')
<h1>Update user</h1>
{!! Form::model($user,['method' => 'PATCH','route'=>['users.update',$user->id]]) !!}
<input name="_token" type="hidden" value="{!! csrf_token() !!}" />
<div class="form-group">
{!! Form::label('Name', 'Name:') !!}
{!! Form::text('name',null,['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('Email', 'Email:') !!}
{!! Form::text('email',null,['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('Comments', 'Comments:') !!}
{!! Form::textarea('comments',null,['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('country_id', 'Country for user:') !!}
{!! Form::select('country_id[]',($country), null,['class' => 'selectpicker form-control','multiple' => 'multiple','tabindex'=>'-1']) !!}
</div>
<div class="form-group">
{!! Form::submit('Update', ['class' => 'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
@endsection
вот такой код в UserController
public function update($id) {
$userUpdate = Request::all();
$country=Request::get('country_id');
$country['user_id']=$id;
$user = User::find($id);
$user->update($userUpdate);
$user->country()->insert($country);
return redirect('users');
}
модель User
public function country() {
return $this->hasMany('App\Userincountries');
}
В итоге получаю вот такой запрос:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list' (SQL: insert into `userincountries` (`0`, `1`, `2`, `user_id`) values (10, 372, 18, 2))
А это какая-то полная фигня ). Подскажите, как исправить ситуацию
Не в сети
Поспешил задавать вопрос, разобрался сам ). Во первых это не hasMany а belongsToMany, ну а добавление/редактирование это
$user->country()->attach($country);
$user->country()->sync($country);
Не в сети
Страницы 1