2015-03-31 80 views
1

渲染的actionView多個條件我有有不同的渲染條件不同,所以我已經使用像如何給在警予

if($p_id != '') { 
     $this->render('view', array(
      'model' => $this->loadModel($id, 'Supplier'), 
      'modeln' => $this->loadModel($p_id, 'Permit'), 
     )); 
    } else { 
     $this->render('view', array(
      'model' => $this->loadModel($id, 'Supplier'), 
     )); 

它工作正常,但我有5至6個條件這樣的模塊,所以我該如何處理呢?任何簡單的方法比這個?感謝

+0

寧願問'是XXXXXXXXXXXXXXX更好option' – JNF 2015-03-31 05:56:28

+0

'我怎麼能處理this'被認爲是一個廣闊問題,並且不太可能在本網站上吸引回答 – JNF 2015-03-31 06:05:48

回答

2

有幾種方法。

  1. 切換情況下將視圖和模型數據作爲數組返回。
  2. 使$ p_id和查看名稱更有意義。甚至,因爲:

    $views = array( 'p_id' => 'corresponding_view file' );

再後來,把它作爲$this->loadModel($p_id, $views[$p_id])

0

有此問題的兩個解決方案:

  1. 添加內部控制狀況和渲染多個視圖,基於條件(當你這樣做)

  2. 僅具有一個視圖和內附加條件。視圖並根據情況顯示所需的視圖部分。

所有這兩個解決方案都是可以實現的,但我相信第一個解決方案更好。因爲第二種解決方案與MVC結構不一致。 將邏輯放入視圖中並不是一個好主意。所以我認爲根據條件渲染不同的視圖更好。