لطفا صبر کنید ...

بازیابی اطلاعات از جداول دارای ارتباط در لاراول

الهه قنبری

توسط الهه قنبری

دیدگاه ها: 0
بازدید ها : 488
رایگان
هدف ما این است که شما، در بالاترین سطح طراحی و توسعه وب باشید.

ثبت نام کنید

در این مقاله از لیداوب، ساخت یک کوئری در لاراول برای دریافت تمام ردیف‌های جدول اول به همراه آخرین ردیف از جدول فرزند را در قالب یک مثال فراخواهید گرفت.


بازیابی اطلاعات از جداول دارای ارتباط در لاراول

فرض کنید، بخواهیم از تمام ردیف‌های یک جدول به همراه ردیف‌های مرتبط در جدول فرزند کوئری بگیریم، البته در اینجا ما تمام ردیف‌ها‌ی جدول قرزند را نمی‌خواهیم، بلکه می‌خواهیم جدیدترین ردیف را جستجو کرده و در خروجی برگردانیم.

برای درک بهتر موضوع، این مثال را با هم بررسی می‌کنیم؛ جدول نویسنده (Authors) و جدول کتاب (Books) را در نظر بگیرید که دارای ارتباط یک به چند هستند؛ بنابراین، هر نویسنده می‌تواند یک یا چند کتاب داشته باشد. هدف ما در اینجا این است که تمام نویسندگان را از جدول اول و آخرین کتاب مربوط به نویسنده را از جدول دوم بازیابی کنیم.

بازیابی تمام ردیف‌های جدول به همراه آخرین ردیف از جدول فرزند 

یک متد جدید در فایل  app/Author.php ایجاد می‌کنیم:

public function latestBook()
{
return $this->hasOne('\App\Book')->latest();
}

متد latest() تمام ردیف‌ها را با روش  created_at desc مرتب می‌کند و اولین ردیف را برمی‌گرداند.

و سپس در کنترلر:

$authors = Author::with('latestBook')->get();
foreach ($authors as $author) {
echo $author->name . ': ' . $author->latestBook->title;
} }

شما همچنین می‌توانید به جای متد latest() از متد oldest() استفاده کنید. بنابراین، با استفاده از دستور مرتب سازی created_at ascمی‌توانید اولین ردیف را بازیابی کنید.

مطالب مرتبط در لیداوب:

نکات کاربردی مشابه جهت یادگیری فریم ورک لاراول را می‌توانید در مقالات لیداوب جستجو کرده و فرابگیرید.

منبع :

5 از 1 رای

 مطالب مرتبط  

در قسمت زیر مطالبی وجود دارند که با مقاله فعلی مرتبط هستند



متاسفانه فقط اعضای سایت قادر به ثبت دیدگاه هستند

برترین مطالب

آموزش در لیداوب

از مقالات و ویدیو های آموزشی خودتان کسب درآمد کنید!

جدیدترین سرویس ما برای دوستان متخصص و خوش بیان در زمینه طراحی وب ارائه شد. این سرویس به شما این امکان را می دهد که به آسانی مقالات و یا ویدیو های آموزشی خود را در لیداوب منتشر کنید. فرصت مناسبی است که بدون داشتن وب سایت و یا وبلاگ و مهم تر از همه بدون هزینه، مطالب خود را در لیداوب منتشر کنید و مهم تر از همه با فروش آنها کسب درآمد کنید. همین حالا شروع کنید و این فرصت استثنایی را از دست ندهید.