معماری

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

یک ستارهدو ستارهسه ستارهچهار ستارهپنج ستاره (2 votes, average: 5,00 out of 5)
Loading...


قسمت سیزدهم آموزش فریم ورک لاراول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();

 

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

 

 

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

 

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

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

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

 

 

 

درباره ی admin

با سلام خدمت بازدیدکنندگان محترم هاشم قنبری فرد هستم دانشجوی کارشناسی ناپیوسته نرم افزار کامپیوتر مسلط به وردپرس, #c , ووکامرسی , برنامه نویسی اندروید, برنامه نویسی سمت سرور, طراحی صفحات وب و آشنا با بانک اطلاعاتی های SqlServer, MySql و آشنا با برنامه نویسی های پایتون, php ,html,css می باشم. همچنین با فریم ورک های لاراول (Laravel) و بوت استرپ هم به صورت حرفه ای کار کرده ام. در هر زمینه ای که کاربران مایل به آموزش آن باشند می توانم به کمک تون بیام و در مشکلاتتون می توانم کمک تون کنم. آرزوی موفقیت برای همه شما دوستان

همچنین ببینید

کار با spinner در اندروید استدیو

آموزش کار با spinner در اندروید استدیو

آموزش کار با spinner در اندروید استدیوReviewed by Admin on Aug 19Rating: 4.0به نام خدا …

11 دیدگاه

  1. بازتاب ها: قسمت چهاردهم آموزش فریم ورک لاراول | فیلم آموزشی |دانشجویان کامپیوتر

  2. بازتاب ها: قسمت شانزدهم آموزش فریم ورک لاراول | فیلم آموزشی |دانشجویان کامپیوتر

  3. بازتاب ها: قسمت نوزدهم آموزش فریم ورک لاراول | فیلم آموزشی |دانشجویان کامپیوتر

  4. بازتاب ها: قسمت بیستم و یک آموزش فریم ورک لاراول | فیلم آموزشی |دانشجویان کامپیوتر

  5. بازتاب ها: آموزش پروژه محور لاراول قسمت نهم | فیلم آموزشی |دانشجویان کامپیوتر

  6. بازتاب ها: آموزش پروژه محور لاراول قسمت هشتم | فیلم آموزشی |دانشجویان کامپیوتر

  7. بازتاب ها: آموزش پروژه محور لاراول قسمت سوم | فیلم آموزشی |دانشجویان کامپیوتر

  8. بازتاب ها: آموزش پروژه محور لاراول قسمت دهم | فیلم آموزشی |دانشجویان کامپیوتر

  9. بازتاب ها: آموزش پروژه محور لاراول قسمت سیزدهم | فیلم آموزشی |دانشجویان کامپیوتر

  10. بازتاب ها: آموزش پروژه محور لاراول قسمت دوازدهم | فیلم آموزشی |دانشجویان کامپیوتر

  11. بازتاب ها: قسمت بیستم آموزش فریم ورک لاراول | فیلم آموزشی |دانشجویان کامپیوتر

دیدگاهتان را بنویسید

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

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