با سلام
من یه حلقه ای رو میخوام در سمت کنترلر بزنم منتها برای من یک ردیف رو تنها برمیگردوند وقتی از foreach استفاده میکردم، پس اومدم نمیدونم حالا درسته چنین چیزی یا نه استفاده کردم به این حالت که بتونم تمام مقادیر رو برگردونم
$allItem = [];
$alertComment->each(function($item){
array_push($allItem, $item->comments->where('approved',0));
});
حقیقتش کار میکنه و تمام فیلدها رو برمیگردونه اما شرطی که بهش دادم رو اعمال نمیکنه یعنی این
->where('approved',0)
نمیدونم باید چیکار کنم - ممنون میشم واقعا راهنمایی بفرمایید
سلام دوست عزیز ؛
تا اون جا که من متوجه شدم شما میخوای کامنت های قبول نشده رو دریافت کنی . شما احتیاجی به حلقه زدن ندارین وقتی خیلی راحت میتونین از eloquent استفاده کنید.
$comments= Comment::where('approved', 0)->get();
در ابتدا ممنون از حس نیت شما برای کمک کردن
اما اگر بخوام توضیح مفصل تری بدم درباره کاری که کردم
در واقع تصمیم دارم به خود کاربری که الان انلاین شده مقادیر کامنت هایی که هر آرتیکلش دریافت کرده و تعداد کلش رو نمایش بدم. واسه همین از روشی که شما گفتید نمیشه رفت برای همین باید از آرتیکل ها دسترسی پیدا کرد به تعداد کل کامنت ها که با توجه به شماره ای دی کاربر مقادیر کامنت ها رو بکشه بیرون
اون چیزی که شما فرمودید تعداد کامنت ها رو برمیگردونه
در واقع کوئری ابتدایی اون این هستش که از روش یه حلقه میخوام بزنم
$alertComment = Article::with(['comments'])->where('user_id', $userId)->latest()->get();
سلام مجدد ؛
اینو تست کنید شاید به جوابتون رسیدین :
$alertComment = Article::with(['comments'])->where('user_id', $userId)->
where(function($query){
$query->where('approved', 0);
})->get();
با سلام خدمت شما همراه عزیز
دوستمون راه مناسبی فرمودن
متاسفانه درست نیست چون گویا دوست عزیزمون درست متوجه منظور من نشدن
داخل جدول مقالات اصلا فیلدی به نام approved وجود نداره که بخواد شرط بررسی بشه
این فیلد برای کامنت هسش که زمانی که کامنت ارسال میشه که وضعیت کامنت رو بررسی بشه
شرطیکه نوشتین روی کامنت ها اعمال میشه نه روی مقالات
خروجی همین کد :
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'approved' in 'where clause' (SQL: select * from `articles` where `user_id` = 3 and (`approved` = 0) and `articles`.`deleted_at` is null)
لینک رو مشاهده کنید
حتما جایی رو اشتباه کردید
https://laravel.com/docs/8.x/eloquent-relationships#constraining-eager-loads