2012-02-14 64 views
0

我有這樣行動更新()來更新另一個模型的更新

=== Invoice === 
id 
customer_id (FK) 
description 

=== Customer === 
id 
firstname 
lastname 

我有兩種形式多模式的數據庫,以便Cstomer表將負荷發票。這樣我就可以從一個視圖輕鬆訪問這兩個模型。對於那些我已經在這兩種模式的關係就這樣 在發票模型維吾爾語是這樣

public function relations() 
    { 
    return array(
    'customer' => array(self::BELONGS_TO,'Customer','customer_id'), 
    ); 
    } 

在用戶模型之間的關係是這樣的

public function relations() 
    { 
    return array(
     'invoice' => array(self::HAS_MANY, 'Invoices','customer_id') 
    ); 
    } 

一切工作fine.But時我打算在Invoice控制器文件中的actionUpdate()中存在客戶模型未定義的情況。所以我做了這樣定義

public function actionView($id) 
    { 
    $this->render('view',array(
     'model'=>$this->loadModel($id), 
     'customers'=>Customers::model()->findByPk(array('customer_id'=>$_GET['id'])); 
    )); 
    } 

它顯示爲未定義偏移:0。我想在這裏(「CUSTOMER_ID」 => $ _ GET [「身份證」])id的值,這樣我可以很容易顯示並更新每個ID的值。 如果我給這樣的

public function actionView($id) 
    { 
    $this->render('view',array(
     'model'=>$this->loadModel($id), 
     'customers'=>Customers::model()->findByPk(28); 
    )); 
    } 

值這是很容易顯示來自客戶ID值。那麼如何獲得這些價值呢?任何幫助和建議都會非常值得一讀。

回答

0

試試這個

public function actionView($id) 
    { 
    $model = $this->loadModel($id); 
    $this->render('view',array(
     'model'=>$model, 
     'customers'=>Customers::model()->findByPk($model->customer_id); 
    )); 
    } 
+0

謝謝@mazzucci這麼快reply.That不working.As可以看到數據庫中的客戶表上方有發票table.So外鍵這就是爲什麼我有放一個數組。在數組中應該是什麼條件,以便它將在發票表和客戶表中相同的ID,或者像findByAttributes ... – NewUser 2012-02-14 12:32:17

+0

那麼你應該使用'findAll'方法,而不是'findByPk'。也許這會更有幫助http://www.yiiframework.com/forum/index.php/topic/27840-create-relation-based-on-get-param/ – 2012-02-14 12:35:17

+0

那麼你認爲應該是什麼條件? – NewUser 2012-02-14 12:43:41