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

نسخه‌ی کامل: مشکل ایجاد منوی داینامیک در YII(حل شد)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام.

من میخوام منو های سایت رو از دیتابیس بخونم و نشون بدم . منو های اصلی مشکلی ندارن و به خوبی نمایش داده میشن اما توی ساب منو ها مشکل دارم.

تصاویر دیتابیس :

[عکس: 8qtf929sz9pbm5savk2x.png]




[عکس: naz6p365eoydb9hst18t.png]
کد Controller :

<?php
class NewController extends Controller{
   
   public function actionIndex(){
       $criteria=new CDbCriteria();
       $criteria->addCondition('parent_id IS NULL');
       $cat=Category::model()->findAll($criteria);
       $this->render('index',  compact('cat'));
   }
}


کد مربوط به view :
<?php foreach ($cat as $category): ?>
    <li class="parent item8">
               <a href="/index.php/services">
                   <span><?php echo CHtml::encode($category->name); ?></span>
               </a>
                <?php
                      $criteria=new CDbCriteria();
                      $criteria->addColumnCondition(array('parent_id'=>$category->id));
                       $sub_cat=  Category::model()->findAll($criteria);
                ?>
               <ul>
                   <li class="item9">
                       <a href="/index.php/services/1391-02-20-14-19-11">
                           <span><?php if($sub_cat){ echo CHtml::encode($sub_cat->name);}?></span>
                       </a>
                   </li>
               
               </ul>
           </li>
<?php endforeach; ?>

و این هم ارور :

Trying to get property of non-object

--------------------------------
با تغییر دادن view به صورت زیر حل شد.

<?php
function Display($s_cat){
   $sub_cat= CHtml::encode($s_cat->name);

     echo <<<EOT

          <li class="item9">
              <a href="">
                 <span>{$sub_cat}</span>
               </a>
            </li>
             
EOT;
}         
?>

<?php foreach ($cat as $category): ?>
    <li class="parent item8">
               <a href="/index.php/services">
                   <span><?php echo CHtml::encode($category->name); ?></span>
               </a>
        <ul>
                <?php
                      $criteria=new CDbCriteria();
                      $criteria->addColumnCondition(array('parent_id'=>$category->id));
                      $criteria->order='id DESC';
                      $sub_cats=  Category::model()->findAll($criteria);
              
                      array_walk($sub_cats,'Display');
                    
  
                ?>
        </ul>
        
           </li>
<?php endforeach; ?>