в моей БД у меня есть пользователи, которые содержат внешние ключи, тогда, когда я хочу удалить Магазин в моем приложении Laravel, я могу это сделать, но для свойства "delete ('cascade)" все элементы, которые содержит Магазин, удаляются.
Я хочу удалить любое поле, но без удаления всех элементов, имеющих отношение к пользователю.
например: в моем приложении я могу создавать пользователей, но у каждого пользователя есть магазин, и это мой внешний ключ, теперь ... я могу удалить магазин в своем приложении, но если я удалю магазинПользователь также удаляется.
Schema::table('users', function(Blueprint $table){
$table->engine = 'InnoDB';
$table->unsignedInteger('store_id')->nullable()->after('direccion');
$table->foreign('store_id')->references('id')->on('stores')->onDelete('cascade');
});
В моей модели Магазина:
public function user()
{
return $this->hasOne('App\User');
}
В моей Модели пользователя
public function store()
{
return $this->belongsTo('App\Store');
}
То же самое для других элементов, которыеУ меня есть, например: я могу создать билет, и билеты содержат внешние ключи, такие как: user_id и status_id.Я думаю, что это будет той же проблемой, что и элемент Store, верно?Мне нужна помощь.
Модель билета:
public function user()
{
return $this->belongsTo(User::class, 'usuario_id', 'id');
}
public function status()
{
return $this->belongsTo('App\Status');
}
Я хочу сохранить элементы, в этом случае, если я хочу удалить магазин, я не хочу удалять пользователяу которого есть этот внешний ключ.А в случае билетов, я хочу иметь возможность удалить пользователя, но сохранить билет сохранить и наоборот.