2015-01-13 153 views
1

您好我想查看客戶的名字使用print_r();這裏是我的表結構:Yii關係不起作用

Table Customers 
    id 
    name 
Table Jobs 
    id 
    customer (REF of Customers table) 

這裏是我的代碼:

在我的客戶模型

return array(
      'name'=>array(self::HAS_MANY, 'Job', 'customer'), 
     ); 
在我的職位表

return array(
      'customer'=>array(self::BELONGS_TO, 'Customers', 'customer'), 
     ); 

在我JobsController:

reports=Jobs::model()->findAll(); 
      echo '<pre>'; 
      print_r($reports); 
      echo '</pre>'; 

輸出是在這裏:

Array 
(
    [0] => JobsObject 
     (
      [_new:CActiveRecord:private] => 
      [_attributes:CActiveRecord:private] => Array 
       (
        [id] => 1 
        [customer] => 1 
this is my expectation: 

Array 
(
    [0] => JobsObject 
     (
      [_new:CActiveRecord:private] => 
      [_attributes:CActiveRecord:private] => Array 
       (
        [id] => 1 
        [customer] => 1 
+0

define「not working」 – Raptor

+0

查看更新後的問題 – Kyrie

+0

爲什麼應該有'name'?你有沒有添加一些東西來定義獲取'name'字段的查詢? –

回答

1
reports=Jobs::model()->with('customer')->findAll(); 
      echo '<pre>'; 
      print_r($reports); 
      echo '</pre>'; 

據我知道你不會的工作記錄裏得到... 你會得到不同的對象來獲取對各個用戶的數據,如

Array 
(
    [0] => JobsObject 
     (
      [_new:CActiveRecord:private] => 
      [_attributes:CActiveRecord:private] => Array 
       (
        [id] => 1 
        [customer] => 1 
      [customersRecord] => Array 
1

您的目標(您打印的第二個數組)是錯誤的,因爲您想要注入屬於Jobs對象內的Customers表的名稱屬性。 要閱讀相關的數據,你只需要訪問這種方式(或類似的東西):

$this->job->customer 

(客戶關係的名字,$這個 - >工作是當前行/對象,你正在閱讀)