دستور rawValue در فریمورک لاراول

422 بازدید 2 سال قبل 0 دیدگاه

تا چند وقت پیش خودم برای اینکه بخوام توی sql نویسی لاراول و یا eloquent دو تا فیلد رو در کنار هم به عنوان یک فیلد داشته باشم از DB::raw استفاده میکردم. به این صورت:

Post::query()
    ->select(DB::raw('CONCAT(`title`, &quote &quote, `slug`) AS title'))
    ->where('published', true)
->get()

اما توی نسخه 9.36.4 لاراول یک متد جدید داخل eloquent معرفی شده که نیاز به DB::row رو از بین میبره. این متد جدید که rawValue نام داره به این صورت کار میکنه

Post::query()
    ->rawValue('CONCAT(`title`, &quote &quote, `slug`) AS title')
    ->where('published', true)
->get()

این توضیح رو هم بدم که استفاده از CONCAT صرفا به عنوان یک مثال بوده و خیلی کارهای دیگه با rawValue میشه انجام داد که من اینجا به همین مثال بسنده کردم.

 

اگر سوال یا نظری دارید در بخش کامنت ها مطرح کنید

0 دیدگاه   (ارسال دیدگاه)