@ali.bayat
@juza66
@davoodkhany
میخوام با map یک سری از فیلد های یک ردیف از جدول رو که null هستند رو نمایش نده و بقیه که null نیستند رو نمایش بده
map بیشتر برای Collection ها کاربرد داره.
کوئری بیلدر لاراول همچین متدی داره. میتونی استفاده کنی:
$users = DB::table('users')
->whereNotNull('updated_at')
->get();
دستور بالا تمام user هایی که فیلد updated_at اونها null نیست رو نشون میده
@ali.bayat
علی اقا حرفت درست اما من میخوام تو یک ردیف از جدول اونهایی که nullهستند رو نشون نده و اونهایی که پر هستد رو نشون بده
مثلا در ردیف ۱
۴ تا ستون داریم ۲ تاش nullهستند و دو تاش پر هستندمن میخوام بگم هر کدوم که پر هست رو نشون بده
میتونی از whereNotNull در کنار whereNull استفاده کنی دیگه..
راه دیگه هم استفاده از متد filter مستقیما روی Collection هست:
فرض کن داده برگشتی کالکشن لاراول به شکل آرایه زیر هست:
[1, 2, 3, null, false, '', 0, []]
از متد filter که استفاده کنی:
$users->filter()->all()
این شکلی میشه:
[1, 2, 3]
خودش مقادیر null, false و خالی رو حذف میکنه
@ali.bayat
الان من این کار رو انجام دادم باز nullها رو نشون میده
$form_tool=Form_TollsModel::where([['admin_id',$id],['form_id',$form_id]])->get();
return $form_tool>filter()->all();
شما داری آرایه ای رو که شامل آرایه های دیگه هست رو وارد کالکش میکنی
معلومه که کار نمیکنه....
اگر آرایه کاملا خالی باشه حذفش میکنه.. نه وقتی یک اندیسش خالی باشه....
اگر میخواهی از الکوئنت استفاده کنی، به شکل زیر:
$data = FormModel::get()->pluck('admin_id');
$dataWithoutNulls = $data->filter()->all();
احتیاجی هم نیست از collect استفاده کنی چون برگشتی الکوئنت خودش instance کالکشن هست
از روش کوئری بیلدر استفاده کن. بالاتر توضیحش دادم. whereNotNull ...
@ali.bayat
علی اقا ببخشید اما من این کد رو میزنم فقط دو تا فیلد رو نشون میده در صورتی که باید ۳ فیلد رو نشون بده
$form_tool=Form_TollsModel::where([['admin_id',$id],['form_id',$form_id]])->get()->pluck('admin_id','form_id','tool_id');
return $form_tool->filter()->all();
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟