رفتن به مطلب
انجمن پشتیبانی لاراول ایران

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

Recommended Posts

سلام

در جلسه 5 وقتی می خوام فارن کی درست کنم متاسفانه دستورات  foreign , refrences , onDelete , ... رو نمی شناسه و پیشنهاد نمیده

وقتی هم دستی وارد کردم  فارن کی ساخته نمیشه 

تصویر کد نوشته شده ( بصورت دستی) و نتیجه رو ارسال می کنم

کد.PNG

خطا.PNG

Share this post


Link to post
Share on other sites

هاست لاراول با پشتیبانی 24 ساعته و امکانات کامل از مدیرهاست

قبل از سایت کلید خارجی باید ریفرنس اون کلید وجود داشته باشه یعنی شما باید جدول users و فیلد id در جدول users را داشته باشید 

نکته ی مهمتر اینکه جداول شما باید روی انجین InnoDB باشند . اگر MyISAM هست تغییر بدید

ضمنا فیلد id در جدول users باید primarykey باشه

Share this post


Link to post
Share on other sites

همه اینها به همون شکلی که باید باشند وجود دارند ! 

اگر چه من چیزی رو اصولا تغییر نداده بودم که مشکلی ایجاد بشه و از migrate خود لاراول استفاده کرده بودم اما بازهم برای احتیاط جدول ها رو چک کردم و دقیقا همون چیزی بودن که باید باشن

سعی کردم بصورت دستی فارن کی رو ایجاد کنم بازهم نشد 

از کدهای sql استفاده کردم باز هم خطا داد ! 

در کل هیچ جوری زیر بار انجام این کار نمیره !!

پ.ن : من دارم جلسه 5 آموزش رو پیش میرم و دقیقا همون مراحل رو انجام دادم

Share this post


Link to post
Share on other sites
در 3 ساعت قبل، xvision گفته است :

و از اینها گذشته سوال من اینه که چرا دستوراتی مثل :   foreign , refrences , onDelete , ...  رو به من نشون نمیده و باید همه رو دستی بنویسم ؟!! 

بستگی به پلاگین vscode داره که بروزرسانی شده باشه و طبق آخرین نسخه لاراول همه ی متدها رو پشتیبانی کنه

در خصوص مشکلتون هم مورد زیر رو بررسی کنید

هر دو فیلد دارای type یکسان باشند یعنی id در جدول users و user_id در جدول posts هر دو مثلا integer یا هردو biginteger باشند

Share this post


Link to post
Share on other sites

دیتا تایپ ها رو یکی کردم چون یکی اینتیجر بود و یکی بیگ اینتیجر 

ظاهرا بخشی از مشکل حل شده اما هنوز نه کاملا!

در 2 ساعت قبل، ابوالفضل طالبی گفته است :

بستگی به پلاگین vscode داره که بروزرسانی شده باشه و طبق آخرین نسخه لاراول همه ی متدها رو پشتیبانی کنه

در خصوص مشکلتون هم مورد زیر رو بررسی کنید

هر دو فیلد دارای type یکسان باشند یعنی id در جدول users و user_id در جدول posts هر دو مثلا integer یا هردو biginteger باشند

 

Capture.PNG

Share this post


Link to post
Share on other sites

تصویری که قرار دادید همون خطای قبلی هست

از phpmyadmin کلید تعریف کنید ببینید اونجا خطا چی میده 

دلیل دیگه ای بجر اینکه تیبل شما InnoDB نباشه به ذهن من نمیرسه

Share this post


Link to post
Share on other sites

مشکل حل شد !

تعجب من از اینه که من تمام مراحل رو مثل شما جلو رفتم و نباید به چنین مشکلی بر می خوردم اما به هر حال پیش اومد

اما راه حل :

مشکل همچنان یکسان نبودن دیتا تایپ user_id و id بود هم باید نوع اونها یکی می شد و هم Attributes 

بنابراین موقع تعریف user_id بهتره از کد زیر استفاده بشه

Schema::table('posts', function (Blueprint $table) {
            //
            
            $table->unsignedBigInteger('user_id')->after('id');
            $table->foreign('user_id')->references('id')->on('users')->onDeleate('cascade');
           
        });

پیروز باشید .

Share this post


Link to post
Share on other sites

وارد این گفتگو شوید

میتوانید پیام خود را ارسال کنید و بعد ثبت نام نمایید. در صورتی که حساب کاربری دارید, هم اکنون وارد شوید و در این گفتگو شرکت کنید.

مهمان
پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  Only 75 emoji are allowed.

×   لینک شما به صورت اتوماتیک جایگذاری شد.   نمایش به عنوان یک لینک به جای

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • جدید...