سلام
نمیدونم چرا onDelete رو cascade گذاشتم کار نمیکنه!
class Tashakol extends Model
{
public function users()
{
return $this->hasMany(User::class , 'tashakol_id');
}
public function f۱۰۱()
{
return $this->hasMany(F۱۰۱::class , 'tashakol_id');
}
}
این از مایگریشن f۱۰۱
```
public function up()
{
Schema::create('f۱۰۱_s', function (Blueprint $table) {
$table->bigIncrements('id');
$table->bigInteger('tashakol_id')->unsigned();
$table->foreign('tashakol_id')->references('id')
->on('tashakols')
->onDelete('cascade')
->onUpdate('cascade');
$table->string('subject');
$table->string('title');
$table->string('target');
$table->string('necessity');
$table->string('audience');
$table->string('colleague');
$table->string('date');
$table->integer('from');
$table->integer('to');
$table->integer('term');
$table->text('preRun');
$table->text('duringRun');
$table->text('laterRun');
$table->text('manPower');
$table->string('documentary');
$table->string('documentaryOfficer');
$table->string('assessment');
$table->string('assessmentOfficer');
$table->integer('status')->default('۰');
$table->text('comment')->nullable();
$table->timestamps();
});
}
```
این از مایگریشن users
```
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id')->unique();
$table->string('name');
$table->string('family');
$table->string('mobile');
$table->string('username', ۱۹۱)->unique();
$table->text('password');
// $table->text('email')->nullable();
$table->text('remember_token')->nullable();
$table->text('pic');
$table->string('type');
$table->bigInteger('tashakol_id')->default(۱);
$table->foreign('tashakol_id')
->references('id')
->on('tashakols')
->onDelete('cascade')
->onUpdate('cascade');
$table->string('daneshjooee')->nullable();
$table->timestamps();
});
}
```
چندین مورد میگم رعایت کنید
اول از همه اگر لاراول آخرین نسخه از ویراست 9 باشه این مشکل کاملا حل شده هست توش
اگر آخرین نسخه از ویراست 9 نیستین موارد زیر کمکتون میکنه
اول از همه در فایل config/database.php قسمت engine را روی InnoDB ست کنین
اگر مشکل حل نشد به صورت زیر پاک کنید
در مدل مربوطه روابط را به صورت زیر در متد booted بنویسید و وقتی که مثلا کاربر را پاک میکنین تمامی روابطش هم پاک میشه
protected static function booted()
{
static::deleted(function ($user) {
$user->user_profile()->delete();
$user->user_bank()->delete();
$user->place()->delete();
$user->user_target()->delete();
$user->infiltrations()->delete();
$user->comment()->delete();
$user->security()->delete();
$user->tickets()->delete();
$user->comments()->delete();
$user->orders()->delete();
$user->wallet()->delete();
$user->post()->delete();
});
}
سلام از این جهت که میگین کار نمیکنه یعنی چی یعنی ارور دارید یا با حذف کردن یکی از tashakol مواردی که در جداول دیگه بهش رابطه دادید پاک نمیشن ؟
چندین مورد میگم رعایت کنید
اول از همه اگر لاراول آخرین نسخه از ویراست 9 باشه این مشکل کاملا حل شده هست توش
اگر آخرین نسخه از ویراست 9 نیستین موارد زیر کمکتون میکنه
اول از همه در فایل config/database.php قسمت engine را روی InnoDB ست کنین
اگر مشکل حل نشد به صورت زیر پاک کنید
در مدل مربوطه روابط را به صورت زیر در متد booted بنویسید و وقتی که مثلا کاربر را پاک میکنین تمامی روابطش هم پاک میشه
protected static function booted()
{
static::deleted(function ($user) {
$user->user_profile()->delete();
$user->user_bank()->delete();
$user->place()->delete();
$user->user_target()->delete();
$user->infiltrations()->delete();
$user->comment()->delete();
$user->security()->delete();
$user->tickets()->delete();
$user->comments()->delete();
$user->orders()->delete();
$user->wallet()->delete();
$user->post()->delete();
});
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟