• 1400/02/14

حلقه در سمت کنترلر :

با سلام 
 

من یه حلقه ای رو میخوام در سمت کنترلر بزنم منتها برای من یک ردیف رو تنها برمیگردوند وقتی از foreach استفاده میکردم، پس اومدم نمیدونم حالا درسته چنین چیزی یا نه استفاده کردم به این حالت که بتونم تمام مقادیر رو برگردونم 

 

        $allItem = [];
        $alertComment->each(function($item){
            array_push($allItem, $item->comments->where('approved',0));
        });

 

حقیقتش کار میکنه و تمام فیلدها رو برمیگردونه اما شرطی که بهش دادم رو اعمال نمیکنه یعنی این 


->where('approved',0)

 

نمیدونم باید چیکار کنم - ممنون میشم واقعا راهنمایی بفرمایید

 

  • 1400/02/14
  • ساعت 17:51

سلام دوست عزیز ؛

تا اون جا که من متوجه شدم شما میخوای کامنت های قبول نشده رو دریافت کنی . شما احتیاجی به حلقه زدن ندارین وقتی خیلی راحت میتونین از eloquent استفاده کنید.

$comments= Comment::where('approved', 0)->get();

 


  • 1400/02/14
  • ساعت 19:07

در ابتدا ممنون از حس نیت شما برای کمک کردن 

اما اگر بخوام توضیح مفصل تری بدم درباره کاری که کردم

در واقع تصمیم دارم به خود کاربری که الان انلاین شده مقادیر کامنت هایی که هر آرتیکلش دریافت کرده و تعداد کلش رو نمایش بدم. واسه همین از روشی که شما گفتید نمیشه رفت برای همین باید از آرتیکل ها دسترسی پیدا کرد به تعداد کل کامنت ها که با توجه به شماره ای دی کاربر مقادیر کامنت ها رو بکشه بیرون 

اون چیزی که شما فرمودید تعداد کامنت ها رو برمیگردونه 

 

در واقع کوئری ابتدایی اون این هستش که از روش یه حلقه میخوام بزنم 

$alertComment = Article::with(['comments'])->where('user_id', $userId)->latest()->get();

 


  • 1400/02/15
  • ساعت 00:24

سلام مجدد ؛

اینو تست کنید شاید به جوابتون رسیدین :

$alertComment = Article::with(['comments'])->where('user_id', $userId)->
			    where(function($query){
			    		$query->where('approved', 0);
			    })->get();

  • 1400/02/15
  • ساعت 14:51

با سلام خدمت شما همراه عزیز

 

دوستمون راه مناسبی فرمودن


  • 1400/02/15
  • ساعت 15:14

متاسفانه درست نیست چون گویا دوست عزیزمون درست متوجه منظور من نشدن 
داخل جدول مقالات اصلا فیلدی به نام approved وجود نداره که بخواد شرط بررسی بشه 
این فیلد برای کامنت هسش که زمانی که کامنت ارسال میشه که وضعیت کامنت رو بررسی بشه 


  • 1400/02/15
  • ساعت 15:18

شرطی‌که نوشتین روی کامنت ها اعمال میشه نه روی مقالات


  • 1400/02/15
  • ساعت 16:26
خروجی همین کد :

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) 

  • 1400/02/17
  • ساعت 01:13

لینک رو مشاهده کنید

 

حتما جایی رو اشتباه کردید

 

https://laravel.com/docs/8.x/eloquent-relationships#constraining-eager-loads


logo-samandehi