تالار گفتمان nCIS.ir

نسخه‌ی کامل: شرط نمایش در آخرین کامنت ها (حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام دوستان تو وبلاگ خود فریم ورک نمایش آخرین کامنت ها رو داره.اینجا
اما کدش یک مشکلی داره وقتی نوشته ای رو 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 رو درج کنیم؟
ممنون میشم راهنمایی کنید
دیگه OR نباید بگذارین. کلاً باید بگین اگه وضعیت PUBLISHED بود فقط نمایش بده.
نمیشه چرا
من الان
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 وارد کرد؟
اینو تست کنید:
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 نباید بگذارین.