PDA

View Full Version : مشکل در ارسال پست در کتگوری (حل شد)



shadecute
پنج شنبه 23 بهمن 1393, 08:45 صبح
سلام
من برای نوشته هام کتگوری ساختم
همه چیز درسته و خوب کار میکنه . مشکل عجیبی دارم اونم اینه که از کتگوری id 1 تا id 9 هر نوشته ای که در کتگوری های خودش ارسال میکنم درست میره در کتگوری لیست میشه بدون مشکل ولی از کتگوری id 10 به بعد هر نوشته ای که ارسال میکنم علاوه بر کتگوری خودش میره در کتگوری id 1 هم میشینه - اینجوری نوشته در 2 کتگوری قرار میگیره!!!!!
اکشن لیست کردن من به این شکله


public function actionCategoryList($id)
{
$criteria=new CDbCriteria(array(

'condition'=>'status='.Post::STATUS_PUBLISHED,
'order'=>'create_time DESC',
'with'=>'commentCount',
));
if(isset($_GET['tag']))
$criteria->addSearchCondition('tags',$_GET['tag']);


$criteria->addSearchCondition('id_category',$id);

$dataProvider=new CActiveDataProvider('Post', array(
'pagination'=>array(
'pageSize'=>Yii::app()->params['postsPerPage'],
),
'criteria'=>$criteria,
));

$this->render('index',array(
'dataProvider'=>$dataProvider,
));
}
و درmain هم ادرس رو اینجوری زدم

'category/<id:\d+>/'=>'post/categoryList/',


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

Veteran
پنج شنبه 23 بهمن 1393, 09:03 صبح
اکشن create رو بزارید

shadecute
پنج شنبه 23 بهمن 1393, 10:39 صبح
به create فکر نکنم ربطی داشته باشه . مشکل در لیست گیریه
چون در دیتابیس همه چی درست ذخیره میشه
آی دی کتگوری هام درست ذخیره میشن
مثلا من الان یک نوشته ی جدید ارسال کردم در دیتابیس آی دی کتگوریش 10 هست
ولی در لیست گیری علاوه در خود کتگوری 10 در کتگوری 1 هم پست نمایش داده میشه
-
دقیقا هم از کتگوری 9 به بعد این مشکل برام پیش میاد
هر مطلبی در کتگوری 10 و 11 و 12 و ... به بعد ذخیره میکنم در لیست گیری در کتگوری 1 هم میاد:عصبانی++:

shimafaraz
پنج شنبه 23 بهمن 1393, 19:30 عصر
میشه آموزش ساخت کتگوری رو بزارید؟ من برای آموزش دارم بر روی وبلاگ دیفالت yii کار میکنم می خوام دسته بندی بزارم
میشه آموزشش رو بزارید؟ تو آموزش هایی yii چیزی پیدا نکردم

shadecute
جمعه 24 بهمن 1393, 02:29 صبح
میشه آموزش ساخت کتگوری رو بزارید؟ من برای آموزش دارم بر روی وبلاگ دیفالت yii کار میکنم می خوام دسته بندی بزارم
میشه آموزشش رو بزارید؟ تو آموزش هایی yii چیزی پیدا نکردم

چیز خاصی نداره
به هر حال بزارید این مشکل من حل شد چشم در پست جداگانه آموزشش رو میزارم
-
دوستان ممنون میشم راهنمایی کنید همچنان مشکلم وجود داره
کجای اکشن لیست کردن مطالبدر کتگوری مشکل داره؟

MMSHFE
شنبه 25 بهمن 1393, 09:03 صبح
از addSearchCondition استفاده نکنید چون LIKE میگذاره. بجاش از addColumnCondition استفاده کنید.

shadecute
شنبه 25 بهمن 1393, 21:06 عصر
ممنون استاد از موردی که فرمودید استفاده کردم ولی اررور 500 با این متن
Invalid argument supplied for foreach()
رومیده
کدم اینجوری شد


public function actionCategoryList($id)
{
$criteria=new CDbCriteria(array(

'condition'=>'status='.Post::STATUS_PUBLISHED,
'order'=>'create_time DESC',
));
if(isset($_GET['tag']))
$criteria->addColumnCondition('tags',$_GET['tag']);


$criteria->addColumnCondition('id_category',$id);

$dataProvider=new CActiveDataProvider('Post', array(
'pagination'=>array(
'pageSize'=>Yii::app()->params['postsPerPage'],
),
'criteria'=>$criteria,
));

$this->render('index',array(
'dataProvider'=>$dataProvider,
));

shadecute
شنبه 25 بهمن 1393, 21:25 عصر
استاد شهرکی کدی که در اولین پست دادم کار میکنه ولی سوالم اینه که چرا باید از category id 9 به بعد موقع لیست کردن مطالب اون کتگوری ها هم در کتگوری آی دی 1 لود میشه
تا کتگوری 9 هیچ مشکلی نیست همه چی سره جاشه
الان مطالبی که در کتگوری 10 , 11 , 12 , ... ارسال میکنم علاوه بر نمایش در خود کتگوری یه کپی هم میاد تو کتگوری آی دی 1 .
:گریه::گریه::گریه::گریه:
128469
این تصویر دیتابیسم ببینید کتگوری فقط 10 ثبت شده اما باکد بالا که لیست گیری میکنم تو 2 تا دسته بندی نمایش داده میشه

localhost/blog/post/categorylist/10
و

localhost/blog/post/categorylist/1

فقطم این مشکل از کتگوری آی دی 9 به بعد میشه
اصلا کدی که استفاده میکنم درسته؟ اکشن دیگه چطوری میتونم استفاده کنم؟
ممنون میشم راهنمایی کنید هر کاریش میکنم درست نمیشه

MMSHFE
یک شنبه 26 بهمن 1393, 08:54 صبح
یکم مستندات رو بخونید. روش درست صدا زدن addColumnCondition اینطوریه:

$criteria->addColumnCondition(array('id_category'=>$id));

shadecute
دوشنبه 27 بهمن 1393, 12:32 عصر
استاد شهركي بسيار بسيار ممنون از راهنماييتون
مشكلم حل شد