رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
شرط نمایش در آخرین کامنت ها (حل شد)
#1
سلام دوستان تو وبلاگ خود فریم ورک نمایش آخرین کامنت ها رو داره.اینجا
اما کدش یک مشکلی داره وقتی نوشته ای رو draft  می کنیم نوشته از لیست پست های وبلاگ حذف میشه  اما در لیست آخرین کامنت ها نمایش داده میشه
 public function findRecentComments($limit=10)
{
return $this->with('post')->findAll(array(
'condition'=>'t.status='.self::STATUS_APPROVED,
'order'=>'t.create_time DESC',
'limit'=>$limit,
));
}

این کد  پیش فرضشه که در مدل Comment  درج شده

حالا من میخوام تغییرش بدم که وقتی نوشته ای پیش نویس شد در این لیست قرار نگیره
کد رو اینجوری تغییر دادم
 public function findRecentComments($limit=10)
{
return $this->with('post')->findAll(array(
'condition'=>'t.status='.self::STATUS_APPROVED. ' OR status=' . Post::STATUS_PUBLISHED,
'order'=>'t.create_time DESC',
'limit'=>$limit,
));
}


اما کد کار نمیکنه
مگه نو شرط نباید Post::STATUS_PUBLISHED رو درج کنیم؟
ممنون میشم راهنمایی کنید
پاسخ
تشکر شده توسط:
#2
دیگه OR نباید بگذارین. کلاً باید بگین اگه وضعیت PUBLISHED بود فقط نمایش بده.
پاسخ
تشکر شده توسط: shima_sadeghian
#3
نمیشه چرا
من الان
public function findRecentComments($limit=10)
{
return $this->with('post')->findAll(array(
'condition'=>'t.status='.Post::STATUS_PUBLISHED,
'order'=>'t.create_time DESC',
'limit'=>$limit,
));
}

اینجوری هم وارد میکنم که فقط PUBLISHED نمایش داده بشه اما همه پست ها نمایش داده میشه .

تو مدل comment  مگه شرط چک کردن status  رو نباید Post::STATUS_PUBLISHED وارد کرد؟
پاسخ
تشکر شده توسط:
#4
اینو تست کنید:
public function findRecentComments($limit=10)
{
    return $this->with('post')->findAll(array(
        'condition' => array('post.status' => Post::STATUS_PUBLISHED),
        'order' => 't.create_time DESC',
        'limit' => $limit,
    ));
}

لطفاً مشخص کنید که فیلد status مربوط به پست هاست یا کامنتها که باید STATUS_PUBLISHED باشه؟ اگه مال پستهاست، پس .t نباید بگذارین.
پاسخ
تشکر شده توسط: shima_sadeghian




کاربران در حال بازدید این موضوع: 1 مهمان