2013-12-20 50 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我設法得到這個通過使用cookbook遠(使$userSpecific部分),但我只能找到控制器端而不是視圖端。我很抱歉,如果這是一個不好的問題,只是想學習。

+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 –