table groups
(
id int auto_increment primary key,
...
);
table users
(
id int auto_increment primary key,
...
);
table user_groups
(
id int auto_increment primary key,
user_id int not null,
group_id int not null,
...
);
В моей модели группы у меня есть отношение hasManyThrough для доступа к пользователям через таблицу ссылок user_groups.
class Group
{
function users()
{
return $this->hasManyThrough('\App\Models\User', '\App\Models\UserGroup', 'group_id', 'id', 'id', 'user_id');
}
}
В моем контроллере:
$user = User::find(2);
$group->users[] = $user;
$group->save();
Так $group->users
это коллекция, и я могу добавить своего пользователя, но он не сохраняется.
Как добавить запись на hasManyThrough
отношение?
Конечно, вы можете сделать это:
// Find an existing User record
$user = App\User::find(2);
// Creates a new group instance
$group = new App\group(['name' => 'shokry']);
// effectively sets $group->User_id to 2 then saves the instance to the DB
$user->groups()->save($group);
модели
class User extends Model
{
public function groups()
{
return $this->hasMany(App\Group::class);
}
}
class Group extends Model
{
public function user()
{
return $this->belongsTo(App\User::class);
}
}
Других решений пока нет …