Мой вопрос связан с Laravel 5.6. У меня есть Post
и Category
модели. Они имеют отношение один-ко-многим, с category_id
в качестве внешнего ключа в таблице posts
. Поле category_id
имеет значение NULL
//Post Model
class Post extends Model
{
public function category()
{
return $this->belongsTo('App\Category', 'category_id', 'id');
}
}
//Category Model
class Category extends Model
{
public function posts()
{
return $this->hasMany('App\Post', 'category_id', 'id');
}
}
У меня вопрос, если я удалю категорию. Как установить category_id
в ноль для всех связанных сообщений в таблице posts
?
Я знаю, что laravel предоставляет dissociate
метод, но я думаю, что это для belongsTo
отношений. Есть ли что-то похожее на ниже?
$category::find($id);
$category->posts()->dissociate(); //set all foreign key(category_id) to null in posts table
$category->delete();