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

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

الهه قنبری

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

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

ثبت نام کنید

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


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

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

برای درک بهتر موضوع، این مثال را با هم بررسی می‌کنیم؛ جدول نویسنده (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 رای

 مطالب مرتبط  

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

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

برترین های