xvision 2 گزارش دادن ارسال شده در آبان 98 سلام در جلسه 5 وقتی می خوام فارن کی درست کنم متاسفانه دستورات foreign , refrences , onDelete , ... رو نمی شناسه و پیشنهاد نمیده وقتی هم دستی وارد کردم فارن کی ساخته نمیشه تصویر کد نوشته شده ( بصورت دستی) و نتیجه رو ارسال می کنم نقل قول Share this post Link to post Share on other sites
ابوالفضل طالبی 441 گزارش دادن ارسال شده در آبان 98 قبل از سایت کلید خارجی باید ریفرنس اون کلید وجود داشته باشه یعنی شما باید جدول users و فیلد id در جدول users را داشته باشید نکته ی مهمتر اینکه جداول شما باید روی انجین InnoDB باشند . اگر MyISAM هست تغییر بدید ضمنا فیلد id در جدول users باید primarykey باشه 1 نقل قول Share this post Link to post Share on other sites
xvision 2 گزارش دادن ارسال شده در آبان 98 همه اینها به همون شکلی که باید باشند وجود دارند ! اگر چه من چیزی رو اصولا تغییر نداده بودم که مشکلی ایجاد بشه و از migrate خود لاراول استفاده کرده بودم اما بازهم برای احتیاط جدول ها رو چک کردم و دقیقا همون چیزی بودن که باید باشن سعی کردم بصورت دستی فارن کی رو ایجاد کنم بازهم نشد از کدهای sql استفاده کردم باز هم خطا داد ! در کل هیچ جوری زیر بار انجام این کار نمیره !! پ.ن : من دارم جلسه 5 آموزش رو پیش میرم و دقیقا همون مراحل رو انجام دادم نقل قول Share this post Link to post Share on other sites
xvision 2 گزارش دادن ارسال شده در آبان 98 و از اینها گذشته سوال من اینه که چرا دستوراتی مثل : foreign , refrences , onDelete , ... رو به من نشون نمیده و باید همه رو دستی بنویسم ؟!! نقل قول Share this post Link to post Share on other sites
ابوالفضل طالبی 441 گزارش دادن ارسال شده در آبان 98 در 3 ساعت قبل، xvision گفته است : و از اینها گذشته سوال من اینه که چرا دستوراتی مثل : foreign , refrences , onDelete , ... رو به من نشون نمیده و باید همه رو دستی بنویسم ؟!! بستگی به پلاگین vscode داره که بروزرسانی شده باشه و طبق آخرین نسخه لاراول همه ی متدها رو پشتیبانی کنه در خصوص مشکلتون هم مورد زیر رو بررسی کنید هر دو فیلد دارای type یکسان باشند یعنی id در جدول users و user_id در جدول posts هر دو مثلا integer یا هردو biginteger باشند نقل قول Share this post Link to post Share on other sites
xvision 2 گزارش دادن ارسال شده در آبان 98 دیتا تایپ ها رو یکی کردم چون یکی اینتیجر بود و یکی بیگ اینتیجر ظاهرا بخشی از مشکل حل شده اما هنوز نه کاملا! در 2 ساعت قبل، ابوالفضل طالبی گفته است : بستگی به پلاگین vscode داره که بروزرسانی شده باشه و طبق آخرین نسخه لاراول همه ی متدها رو پشتیبانی کنه در خصوص مشکلتون هم مورد زیر رو بررسی کنید هر دو فیلد دارای type یکسان باشند یعنی id در جدول users و user_id در جدول posts هر دو مثلا integer یا هردو biginteger باشند نقل قول Share this post Link to post Share on other sites
ابوالفضل طالبی 441 گزارش دادن ارسال شده در آبان 98 تصویری که قرار دادید همون خطای قبلی هست از phpmyadmin کلید تعریف کنید ببینید اونجا خطا چی میده دلیل دیگه ای بجر اینکه تیبل شما InnoDB نباشه به ذهن من نمیرسه 1 نقل قول Share this post Link to post Share on other sites
xvision 2 گزارش دادن ارسال شده در آبان 98 مشکل حل شد ! تعجب من از اینه که من تمام مراحل رو مثل شما جلو رفتم و نباید به چنین مشکلی بر می خوردم اما به هر حال پیش اومد اما راه حل : مشکل همچنان یکسان نبودن دیتا تایپ 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'); }); پیروز باشید . 1 نقل قول Share this post Link to post Share on other sites