🐈
【Laravel】中間テーブルをsycnメソッドでお手軽に保存する
概要
sync
メソッドを利用することで関連テーブルのデータ更新を簡単に行ってみた
リレーションの定義
User.php
class Users extends Model
{
/**
* モデルと関連しているテーブル
*
* @var string
*/
protected $table = 'users';
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'id', 'name'
];
public function roles(): \Illuminate\Database\Eloquent\Relations\BelongsToMany
{
return $this->belongsToMany(Roles::class, 'user_roles', 'user_id', 'role_id');
}
sync()
ロジックを定義する
UserService.php
public function store(array $postData, $id = null)
{
$user = User::query()->updateOrCreate(
['id' => $id],
$request
);
return $user->roles()->sync($postData['role_id'] ?? []),
}
最後に
読んでいただきありがとうございます。
今回の記事はいかがでしたか?
・こういう記事が読みたい
・こういうところが良かった
・こうした方が良いのではないか
などなど、率直なご意見を募集しております。
Discussion