سلام میخوام user_id رو کلید خارجی کنم
ولی خطای زیر رو دارم:
: Syntax error or access violation: 1068 Multiple primary key defined (SQL: alter table subs
add primary key subs_id_primary
(id
))
این چیزی که تو migrationجدول دوم ام نوشتم:
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
داخل جدول subs، خط دوم رو به صورت زیر بنویسید:
$table()->id();
الان جدولتون درسته و کار میکنه ولی برای اینکه کدتون تمیزتر بشه برای کلید خارجی خط ۳ و ۱۲ رو پاک کنید و به جاش کد زیر رو قرار بدین.
$table->foreignId('user_id')->constrained('users')->cascadeOnUpdate()->cascadeOnDelete();
موفق باشید.
سلام
Schema::create('subs', function (Blueprint $table) {
$table->id()->primary();
$table->unsignedBigInteger('user_id');
$table->string('name');
$table->string('email');
$table->tinyInteger('gender');
$table->tinyInteger('age');
$table->integer('price_spent');
$table->tinyInteger('status');
$table->timestamp('expired');
$table->timestamps();
$table->foreign('user_id')->references('id')->on('users');
پایین هم migration user
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->tinyInteger('role');
$table->string('name');
$table->integer('age');
$table->tinyInteger('gender');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
داخل جدول subs، خط دوم رو به صورت زیر بنویسید:
$table()->id();
الان جدولتون درسته و کار میکنه ولی برای اینکه کدتون تمیزتر بشه برای کلید خارجی خط ۳ و ۱۲ رو پاک کنید و به جاش کد زیر رو قرار بدین.
$table->foreignId('user_id')->constrained('users')->cascadeOnUpdate()->cascadeOnDelete();
موفق باشید.
سلام
ببین باید توی جدولی که میخوای userid رو قرار بدی باید اینجوری بنویسی
$table->foreignIdFor(User::class)
مدل User رو هم یوز کن
با این روش دیگه نیازی نیست به روش های قدیمی بیاید اول فیلد استرینگ تعریف کنید و بعد onDelelte و onUpdate تعریف کنید. فقط همین فیلد رو قرار میدید خودش بر اساس نام مدل userid رو براتون قرار میده و به صورت اتوماتیک onDelete و onUpdate هم میشه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟