رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
علت نشون داده نشدن عکسها در دسته بندی مختص خودشون چیه؟ (حل شد)
#1
سلام

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

علتش چی میتونه باشه؟

متشکرم.
پاسخ
تشکر شده توسط:
#2
کدتون و تصویری از دیتای توی دیتابیستون رو بگذارین تا ببینیم مشکل از کجاست.
پاسخ
تشکر شده توسط: sorkhabi
#3
class CategoriesController extends Controller {
	public $layout = '//layouts/category';
	public $category;
	public $photos;
	public $page;
	public $allPages;
	public $order;
public function actionView($id, $order='id', $page=1){
 if(!($category= Categories::model()->findByAttributes(array('id'=>$id, 'confirm'=>1)))){
 throw new CHttpException(404,'دسته بندی با این نام پیدا نشد.');
 }
 $this->category = $category;
 $itemPerPage=8;
 $criteria= new CDbCriteria();
 $criteria->addColumnCondition(array('category_id'=>$category->id,'confirm'=>1));
 $allPhotos= Photos::model()->count($criteria);
 $allPages= ceil($allPhotos/$itemPerPage);
 $page= max(1, intval($page));
 $order= strtolower($order);
 if(!in_array($order, array('id','likes','visits'))){
 $order= 'id';
 }
 $criteria->order=$order.' DESC';
 $criteria->limit=$itemPerPage;
 $criteria->offset= ($page-1)*$itemPerPage;
 $photos=  Photos::model()->findAll($criteria);
 $this->photos = $photos;
 $this->page = $page;
 $this->allPages = $allPages;
 $this->order= $order;
 $this->render('view');
 }
}

اینم عکس data در دیتابیس:

   
پاسخ
تشکر شده توسط:
#4
چرا اینقدر فیلد تعریف کردین؟
class CategoriesController extends Controller
{
    public $layout = '//layouts/category';

    public function actionView($id, $order = 'id', $page = 1)
    {
        if(!($category = Categories::model()->findByAttributes(array('id' => $id, 'confirm' => 1)))) {
            throw new CHttpException(404, 'دسته بندی با این نام پیدا نشد.');
        }
        $itemPerPage = 8;
        $criteria = new CDbCriteria;
        $criteria->addColumnCondition(array('category_id' => $id, 'confirm' => 1));
        $photoCount = Photos::model()->count($criteria);
        $pageCount = ceil($photoCount / $itemPerPage);
        $page = max(1, intval($page));
        $order = strtolower($order);
        if(!in_array($order, array('id', 'likes', 'visits'))) {
            $order = 'id';
        }
        $criteria->order = $order . ' DESC';
        $criteria->limit = $itemPerPage;
        $criteria->offset= ($page - 1) * $itemPerPage;
        $photos = Photos::model()->findAll($criteria);
        $this->render('view', compact('category', 'order', 'page', 'pageCount', 'photos');
    }
}
توی ویو هم با متغیرهای عادی کار کنید و بصورت فیلد نگذارین. معمولاً فیلد رو وقتی میگذارن که بخوان توی Layout و... هم ازش استفاده کنن وگرنه متغیر رو به ویو پاس میدن.

کدتون بنظرم درسته و مشکلی نداره. درصورت امکان توی پیام خصوصی تیم ویور بدین ببینم مشکل چیه.
پاسخ
تشکر شده توسط: sorkhabi , abdollah110110
#5
این مشکل به دلیل دستی وارد کردن اطلاعات در دیتابیس رخ داده بود که الآن با تکمیل شدن پروژه و درج داده ها از طریق PHP و Yii، همه عکسها در دسته بندی مختص خودشون به نمایش درمیان.
متشکرم.
پاسخ
تشکر شده توسط:




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