0
09383027965

قسمت سیزدهم آموزش فریم ورک لاراول

قسمت سیزدهم آموزش فریم ورک لاراولReviewed by هاشم قنبری فرد on Nov 16Rating: 5.0قسمت سیزدهم آموزش فریم ورک لاراولدر این قسمت از آموزش فریم ورک لاراول کاربا ارتباطات (Relationships) در لاراول می پردازیم. تقریبا همه جداول موجود در دیتابیس بایکدیگر ارتباط دارند.ارتباطات می تواند از انواع یک به یک و یک به چند و چند به چند باشد

 

به نام و یاد خدا

سلام عرض می کنم خدمت کاربران سایت دانشجویان کامپیوتر امیدوارم سربلند و پیروز باشید.

 

 

این فریم ورک در سال های 2014 و همچنین 2013 به عنوان محبوب ترین فریم ورک php مورد استفاده قرار گرفته است. همچنین طبق آمار این فریم ورک در سال 2015 هم به عنوان برترین فریم ورک بین فریم ورک های php معرفی گردیده است. همچنین در سال 2016 آمار نشان می دهد که این فریم ورک جای خوبی در بین فریم ورک های php پیدا کرده است. و با اختلاف فاحشی از مابقی فریم ورک ها فاصله گرفته است.

 

خوب دیگه وقت آن رسیده که دلیل اصلی که این فریم ورک به این شهرت و محبوبیت رسیده را بیان کنم. راستش این فریم ورک سن بالایی دارد و خیلی زمان زیادی از پیدایش آن گذشته است. در سال های ابتدایی که این فریم ورک معرفی و منتشر شد استفاده از composer در دستور کارآن قرار نداشت و هیچ خبری از composer نبود و زیاد مورد توجه قرار نگرفت تا این که بعد از گذشت مدتی با اضافه کردن composer به فریم ورک لاراول این فریم ورک پیشرفت به سزایی کرد و به یکباره در صدر فریم ورک های php قرار گرفت. Composer با قدرتی که به فریم ورک لاراول داد کنار قدرت بالای کد نویسی و سرعت بالایی که داشت به تمام نیاز کاربران خود جواب داد و به این محبوبیت و شهرت رسید.

قدرت بی نظر لاراول و استفاده زیاد از این فریم ورک این فریم ورک را خیلی خیلی سرتر از دیگر فریم ورک های php کرده است.

نکته قابل توجه استفاده از این فریم ورک در ایران می باشد. طبق بررسی های انجام شده پرکاربرد ترین فریم ورک در بین فریم ورک های php در ایران هم همین فریم ورک لاراول می باشد. و در ایران نیز از جای خوبی برخوردار می باشد.

آموزش لاراول
آموزش لاراول

 

سیزدهمین قسمت از آموزش فریم ورک لاراول:

 

در این قسمت از آموزش فریم ورک لاراول کاربا  ارتباطات (Relationships) در لاراول می پردازیم. تقریبا همه جداول موجود در دیتابیس بایکدیگر ارتباط دارند. ارتباطات می تواند از انواع یک به یک و یک به چند و چند به چند باشد. در لاراول با Eloquent به راحتی می توانید این ارتباط ها را مدیریت و با آنها کار کنید. در این پست دو نمونه رایج ارتباط یک به چند (One-to-Many) و چند به چند (Many-to-Many) که اکثر ارتباطها در جداول دیتابیس به این صورت است را مثال خواهیم زد.

 

ارتباط One To Many

 

برای مثال یک وبلاگ را در نظر بگیرید که دارای یک جدول به نام posts و یک جدول هم به نام comments هست. هر پست در بلاگ می تواند دارای چند کامنت و هرکامنت هم فقط به یک پست تعلق دارد پس این ارتباط یک به چند است .

 

داخل کلاس مدل post که سمت یک ارتباط است ابتدا ارتباط به مدل Comment را با افزودن یک متد همنام با جدول متناظرش مثلا به نام comments به این صورت پیاده سازی میکنیم:

class Post extends Model {

public function comments()

{

return $this->hasMany(‘App\Comment’);

}

}

 

با استفاده از متد hasMany کلاسی که با آن ارتباط چندی دارد را به عنوان پارامتر به آن میدهیم.

 

همچنین باید داخل کلاس مدل Comment هم متدی همنام کلاس متناظرش مثلا post ایجاد کرده و سپس با استفاده از متد belongsTo کلاس Post را به عنوان پارامتر به آن میدهیم.

 

class Comment extends Model {

public function post()

{

return $this->belongsTo(‘App\Post’);

}

}

 

اکنون همانند مثال زیر می توانید تمام کامنت های پستی با id برابر 1 را بازیابی کنید. همچنین می توانید از سایر متدها همچون شرط هم استفاده کنید.

 

$comments = Post::find(1)->comments;

$comments = Post::find(1)->comments()->where(‘title’, ‘=’, ‘foo’)->first();

 

نکته : نام کلید خارجی باید به صورتی باشد که ابتدا نام جدولی که از آن ارجاع می شود بدون s و سپس کلمه id_ به انتهای آن افزوده شود مثلا برای مثال بالا کلید خارجی باید post_id باشد وگرنه باید در متد hasMany کلید خارجی را هم مشخص کنیم:

 

return $this->hasMany(‘App\Comment’, ‘foreign_key’);

 

ارتباط Many To Many

 

برای پیاده سازی این نوع ارتباط فرض کنید یک جدول به نام users داریم و یک جدول هم به نام roles. هر کاربر می تواند چندین نقش داشته باشد و هر نقش هم میتواند به چندین کاربر تعلق داشته باشد. پس باید یک جدول واسط هم برای این دو جدول به نام role_user داشته باشیم. دقت کنید نام این جدول باید ترکیبی از نام دوجدول قبلی اما بدون s آخر آنها باشد که با _ ازهم جدا شده اند. سپس کلید های خارجی user_id و role_id هم در این جدول ایجاد می شوند.

 

در مدل User یک متد همنام جدولی که با آن ارتباط دارد ایجاد میکنیم و سپس با استفاده از متد belongsToMany کلاس مدل Role را به آن میدهیم.

class User extends Model {

public function roles()

{

return $this->belongsToMany(‘App\Role’);

}

}

 

در کلاس مدل Role هم مانند بالا عمل میکنیم:

 

class Role extends Model {

public function users()

{

return $this->belongsToMany(‘App\User’);

}

}

 

حالا به راحتی می توانیم تمامی نقش های یک کاربر را بازیابی کنیم:

 

$roles = User::find(1)->roles;

 

درج کردن در جدول رابطه دار

 

فرض کنید می خواهیم یک کامنت را در جدول comments درج کنیم. همانطور که قبلا مثال زدیم جدول posts با جدول comments دارای ارتباط یک به چند است و ستون post_id در جدول comment کلید خارجی است. همانند مثال زیر می توانید به روش mass-assignment رکوردی را در ج کنید به طوری که در فیلد post_id به طوراتوماتیک با توجه به پست مورد نظر id آن ثبت خواهد شد.

 

$comment = new Comment([‘message’ => ‘A new comment.’]);

$post = Post::find(1);

$comment = $post->comments()->save($comment);

 

نکته : در این روش درج باید حتما پراپرتی guarded$ را هم در کلاس مدل مورد نظر که میخواهید عمل درج را انجام دهید ست کنید تا ستون هایی که قرار نیست توسط کاربر درج شود محافظت شوند. به طور مثال در زیر من اینگونه آن را تعریف کردم:

public $guarded = [‘id’ , ‘post_id’];

 

همچنین می توانید تعداد زیادی کامنت را هم به روش بالا درج کنید. هررکورد را داخل یک آرایه قرار می دهیم و همچنین به جای متد save و saveMany استفاده میکنیم.

 

$comments = [

new Comment([‘message’ => ‘A new comment.’]),

new Comment([‘message’ => ‘Another comment.’]),

new Comment([‘message’ => ‘The latest comment.’])

];

$post = Post::find(1);

$post->comments()->saveMany($comments);

 

بعضی مواقع نیاز داریم که هنگام select کردن رکوردها خروجی را در قالب آرایه یا JSON داشته باشیم که Eloquent دارای متدهایی برای این کار می باشد.

 

با استفاده از متد toArray می توانیم خروجی هر کوئری را به یک آرایه تبدیل کنیم

$user = User::with(‘roles’)->first();

return $user->toArray();

 

با متد toJson هم خروجی را به JSON تبدیل می کنیم:

 

return User::find(1)->toJson();

 

ویدئو این قسمت را می توانید به صورت آنلاین مشاهده نمایید یا ویدئو را با کیفیت اصلی دانلود کنید.

 

 

دانلود
دانلود

 

اگه می خواهید این فریم ورک را خوب یاد بگیرید این دوره را از دست ندهید چون قراره از پایه این دوره آموزش داده بشه و از سطح مقدماتی شروع  و تا سطح پیشرفته پیش خواهیم رفت.

امیدوارم این آموزش ها رو از دست ندید.

موفق و پیروز باشید.

 

 

 

best framework phpcomposercomposer چیستforeign keyforeign key در لاراولframeworklaravelpcstudentpcstudent.irPhpphp frameworkphp framework laravelrelationshipsrelationships و کاربا آنآموزشآموزش phpآموزش relationships در لاراولآموزش پروژه محورآموزش پروژه محور لاراولآموزش رایگان لاراولآموزش فارسیآموزش فریم ورک لاراولآموزش کار با ارتباطات در لاراولآموزشیارتباط چند به چند در لاراولارتباط یک به چند در لاراولارتباطات در لاراولاصلا چرا لاراولبرترین فریم ورک phpبرترین فریم ورک های phpبرنامه سازیبرنامه نویسی بکند وببرنامه نویسی وبپکیج آموزش لاراولپی اچ پیچرا لاراولدانشجویان کامپیوتردوره برنامه نویسیدوره رایگان لاراولدوره لاراولرنکینگ فریم ورک های phpفریم ورکفریم ورک پی اچ پیفریم ورک سرعتیفریم ورک لاراولفریم ورک های phpفیلمکار با foreign key در لاراولکار با relationshipsکار با کلید خارجی در لاراولکار با لاراولکدام فریم ورک را انتخاب کنمکلید خارجیکلید خارجی و لاراوللاراوللاراول اسانلاراول کارلاراول و قدرتلاراول و کار با آنمرجع آموزش لاراولمعرفی فریم ورکمعرفی فریم ورک های phpوضعیت کار با فریم ورک لاراولیادگیری لاراولیادگیری مبحث relationships در لاراول
دیدگاه کاربران
ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

12 + نه =

This site uses Akismet to reduce spam. Learn how your comment data is processed.