2013-12-20 3 views
0

Так что в моем контроллере MenuController.php я следующий код:CakePHP и условия

class MenuController extends AppController { 

    public $helpers = array('Html', 'Form'); 

    public function index() { 

     $this->set('menus', $this->Menu->find('all')); 

     $userSpecific = $this->Menu->find('all', array(
      'conditions' => array('Menu.user_id' => '20') 
     )); 
    } 

} 

и, на мой взгляд, я делаю следующее:

<?php foreach ($menus as $menu): ?> 

    <?php echo $menu['Menu']['id']; ?> 
    <?php echo $menu['Menu']['user_id']; ?> 

<?php endforeach; ?> 

обновление

Для лучше понять это в моем браузере. Я изменил свое мнение о следующем:

<?php foreach ($menus as $menu): ?> 

<p>Menu id <?php echo $menu['Menu']['id']; ?> is for user: <?php echo $menu['Menu']['user_id']; ?></p> 

<?php endforeach; ?> 

конца обновление

Теперь в представлении, она в настоящее время использует $this и возвращает все значения из таблицы базы данных, Как изменить вид использования $userSpecific, а не $this мне удалось получить это далеко (делая часть $userSpecific), используя cookbook, но я мог найти только сторону контроллера, а не вид. Простите, если это плохой вопрос, просто пытаясь учиться.

+0

Что вы подразумеваете под $ userSpecific и $ this, я не получаю вашу мысль, объясните немного. – Anubhav

ответ

0

Вам необходимо отправить данные на просмотр с контроллера в конце функции index().

Вы можете сделать это следующим образом:

$this->set('userSpecific', $userSpecific); 

или как этот (мой предпочтительный способ)

$this->set(compact('userSpecific'); 

После того, как вы сделали это, вы можете изменить ваш взгляд, чтобы показать пользователю как показано на рисунке:

<?php foreach ($userSpecific as $menu): ?> 

    <?php echo $menu['Menu']['id']; ?> 
    <?php echo $menu['Menu']['user_id']; ?> 

<?php endforeach; ?> 
+0

Я буду принимать этот ответ, как только смогу. Я хотел бы узнать разницу между первым и вторым вариантами ответа? Попытка узнать здесь. –

+0

Если у вас есть только одна переменная, которую вы отправляете, то они в значительной степени эквивалентны. Где он сияет, когда вы отправляете много разных переменных в представление, например: $ this-> set (compact ('menus', 'userSpecific', 'userDetails', 'callToAction')); –

+0

О, это круто. Спасибо за помощь! Я думаю, мне действительно понравится CakePHP –

Смежные вопросы