رابطه یک به چند در لاراول
در این آموزش از مباحث صفر تا صد لارول به بحث رابطه یک به چند در لاراول پرداخته می شود. لاراول به عنوان محبوب ترین فریم ورک زبان PHP، برای ایجاد ارتباط بین دو جدول از Eloquent ORM استفاده می کند. این قابلیت و سهولت در ایجاد رابطه، یکی دیگر از هزاران مزایای لاراول نسبت به سایر رقباست. در این جلسه یکی از این روابط حیاتی و بسیار پر کاربرد این فریم ورک که به رابطه One To Many مشهور است همراه با یک مثال عملی، کامل مورد بحث و مطالعه قرار خواهد گرفت.
رابطه یک به چند در لاراول
رابطه یک به چند زمانی تعریف می شود که یک مقدار از یک مدل Model دارای چند مقدار از مدل های دیگر است. به طور مثال در یک سایت خبری، هر پست یا خبر، چندین و چندین comment یا دیدگاه دارد و در عین حال دیدگاه ، فقط متعلق به یک خبر است.
پیاده سازی رابطه یک به چند
اگر جدول posts یا مطالب به این صورت باشد :
$table->bigIncrements('id'); $table->string('title');
جدول comments یا دیدگاه ها نیز باید اینگونه باشد :
$table->bigIncrements('id'); $table->string('body'); $table->unsignedBigInteger('post_id')->index(); $table->foreign(' post _id')->references('id')->on('posts') ->onDelete('cascade')->onUpdate('cascade');
در سطر سوم از دستورات بالا، به عبارت post_id کلید خارجی یا foreign key می گویند. مقدار این عبارت برابر خواهد بود با id مطلب یا post مربوطه. با استفاده از مقدار کلید خارجی مشخص می شود که یک دیدگاه یا کامنت متعلق به کدام پست است. در آموزش قبلی مفصل درمورد این کلید بحث شده است.
در مدل Post :
public function comments() { return $this->hasMany('App\Comment); }
در مدل Comment :
public function post() { return $this->belongsTo('App\Post'); }
بعد از انجام مراحل بالا کافیست جدول را نهایی کنیم :
php artisan migrate
فراخوانی رابطه های یک post یا comment
حال برای فراخوانی کامنت ها یا دیدگاه های یک پست یا مطلب می توانیم دستور زیر را بکار ببریم :
$comments = Post::first()->comments
و یا :
$comments = Post::find(3)->comments ;
و همچنین برای فراخوانی مطلب مربوط به یک دیدگاه :
return Comment::first()->post;
و یا :
$comment = Comment::find(5); return $comment ->post;
نکته اول
دقت کنید که در مدل Post نام متد را comments به صورت اسم جمع دادیم، زیرا هر پست یا مطلب می تواند بیش از یک دیدگاه یا کامنت داشته باشد.
نکته دوم
کلید خارجی یا foreign key را می توانید چیزی به جز post_id نیز قرار دهید اما باید در متد comments() در مدل Post و نیز در متدpost() در مدل Comment به این مطلب اشاره کنید. فرض کنید ما از عبارت relation_id استفاده کرده ایم :
در Post.php
public function comments() { return $this->hasMany('App\Comment ', 'relation_id'); }
و در Comment.php :
public function post() { return $this->belongsTo('App\Post', ' relation_id'); }
مشاهده رابطه در phpMyAdmin
اگر در phpMyAdmin لوکال هاست رفته و سربرگ Designer را باز کنید با شکل زیر برخورد می کنید که خود نشانگر ایجاد ارتباط بین دو جدول است
برای مشاهده جلسه پانزدهم (بزودی منتشر می شود) کلیک کنید.
مشخصات فیلم آموزشی
نام اثر : فیلم آموزش صفر تا صد لاراول – جلسه چهاردهم: رابطه یک به چند در لاراول
مدرس : مهندس سالار عباپور
مدت زمان : 38 دقیقه
زبان آموزش : فارسی
حجم فایل : یک فایل با حجم 87 مگا بایت
فرمت ویدئو : MP4 با کیفیت بالا
پیش نمایش
درباره محصول
فیلم آموزش صفر تا صد لاراول – جلسه چهاردهم: رابطه یک به چند در لاراول محصولی است که در این پست به آن پرداخته شده است. در این آموزش به توضیح و معرفی رابطه ها در لاراول پرداخته شده است است. این محصول بصورت کامل توسط گروه پشتیبانی پی استور تست و بازبینی شده است. محصول دارای نشان تضمین کیفیت پی استور می باشد.
رابطه یک به چند در لاراول
تاریخ انتشار: | 6 فروردین 1399 |
---|---|
تاریخ بروزرسانی: | 14 اسفند 1399 |
حجم فایل: | 87 مگابایت |
فرمت فایل | mp4 |
مدت زمان: | 1.0 |
شناسه اثر: | ندارد |
تاکنون 1 نفر این محصول را تهیه کرده اند و 1 نظر برای آن ثبت شده است.
نظرات و دیدگاه ها
قوانین ثبت دیدگاه
- لطفاً دیدگاه های خود را فارسی تایپ کنید.
- دیدگاه های نامرتبط به مطلب تایید نخواهد شد.
- از درج دیدگاه های تکراری پرهیز نمایید.
- سوالات تخصصی خودتان را از طریق تیکت پشتیبانی مطرح کنید.
رابطه یک به چند در لاراول
هزینه سفارش: 99,000 تومان
با تخفیف 40 درصدی: فقط 59,400 تومان
تاریخ انتشار: | 6 فروردین 1399 |
---|---|
تاریخ بروزرسانی: | 14 اسفند 1399 |
حجم فایل: | 87 مگابایت |
فرمت فایل | mp4 |
مدت زمان: | 1.0 |
شناسه اثر: | ندارد |
1 بازخورد (مشاهده نظرات)
هزینه سفارش: 99,000 تومان
مدیریت و پشتیبانی
نظرات و پیشنهادات خود را با ما در میان بگذارید.