در دنباله آموزش های انجام پرس و جو با ویژگی Query Builder در لاراول، در این نوشته می خواهیم چندین نمونه پرس و جو دیگر و برخی دیگر از متدهای لاراول را به شما بشناسانیم. گفتیم یک Migration پیش فرض برای جدول users در لاراول هست که با انجام دستور php artisan migrate به جدولی در پایگاه داده نگاشت داده می شود. در کد زیر نخست یک آرایه تودرتو که هر کدام از آرایه های درونی آن یک آرایه انجمنی و همسان یک سطر تازه در جدول است. سپس بدست متد ()insert چندین سطر به جدول users افزوده می شود.

تعداد سطرهای برگشتی

در نوشته لاراول – معرفی Collection ها – بخش دوم درباره متدهای ()count و ()countBy گفتیم که از آنها برای بدست آوردن تعداد سطرهای برگشتی و تعداد تکرار یک کلید ویژه بر پایه مقدارش، به کار می بریم. در کدهای زیر که هر دو همسان هستند، با متد ()count تعداد سطرهای برگشتی را بدست می آوریم.

متد ()countBy یک ورودی که نام یکی از کلیدها یا ستون های جدول است را دریافت و سپس به ازای هر مقدار، تعداد تکرار هر کدام را برگشت می دهد. در شکل زیر خروجی های دو دستور بالا و دستور زیر را می بینید. برای نمونه مقدار amir در میان همه مقداهای کلیدهای name یک بار تکرار شده است.

در کد زیر نخست خروجی ()countBy درون متغیری به نام ()count نگهداری می شود، پس این متغیر از این پس از گونه Collection ها است، پس می توانیم متد ()all را بدست متغیر count$ فراخوانی کنید. متد ()all یک آرایه برگشت می دهد، پس می توانیم عنصرهای آن را با foreach پیمایش کنید. در کد زیر با حلقه foreach تعداد تکرار هر کدام از مقدارهای کلید name نمایش داده می شود.

متد ()find

()find یک ورودی عددی که برابر با شناسه (id) است را دریافت و سپس سطر مربوط به آن id را نشان می دهد. در واقع یک عدد به آن فرستاده می شود و سپس متد سطری را برگشت می دهد که مقدار ستون id آن سطر همسان با ورودی متد ()find است. توجه کنید به صورت پیش فرض و پس از ایجاد Migration با php artisan make:migration یک ستون به نام id از گونه bigIntInrement یا increment ایجاد می شود که برابر با کلید اصلی است و در ستونی که کلید اصلی است نمی توان مقدار تکراری داشت، پس متد ()find در این حالت تنها یک سطر را یکتا و غیر تکراری را برگشت می دهد.

متد ()pluck

از ()pluck برای بدست آوردن یک مقدار (ستون) ویژه از جدول کمک گرفته می شود. در کدهای زیر نخست از میان تمامی ستون ها، مقدار ستون name نشان داده می شود و در دومی و سومی ستون های name و email نشان داده می شوند. توجه کنید در دومی نخست کلید name و در دومی نخست کلید email فرستاده شده است و در خروجی می بینید که چگونه این تغییر در ورودی ها، آرایه ای متفاوت از نظر نام کلید و مقدار ایجاد می کند.

در کد زیر با حلقه تکرار foeeach هر کدام از عنصرهای درون Collection به گونه کلید و مقدار را نشان می دهیم. بنابراین با foreach همانند آرایه ها، می توانیم عنصرهای درون Collection (در اینجا متغیر users$) را نشان دهیم. شکل زیر نیز خروجی کدها را نشان می دهد.

دانلود Laravel Query Builder Part3