Yii关系不起作用

时间:2015-01-13 07:15:21

标签: php yii

您好我想使用print_r()查看客户的姓名;这是我的表结构:

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

您的目标(您打印的第二个数组)是错误的,因为您要在Jobs对象中注入属于Customers表的name属性。 要阅读相关数据,您只需要以这种方式访问​​(或类似的东西):

$this->job->customer

(客户是关系的名称,$ this-&gt; job是您正在阅读的当前行/对象)