0

我有以下查询

UserLogin::model()
-> with(array(
    'Provider'=> array(
        'select'=>'name'
    )
))
-> findAll(array(
    'select' => 'count(t.id) as count ',
    'group'=>'provider_id',
    'order'=>'provider_id'
));

我的观点是

<?php foreach($providerCounts as $providerCount): ?>
    <tr>
        <td><?php echo $providerCount['Provider']['name']; ?></td>
        <td><?php echo $providerCount['count']; ?></td>             
    </tr>
<?php endforeach; ?>

这是关系

'Provider'=>array(self::BELONGS_TO, 'Provider', 'provider_id'),

我收到错误

未定义属性“UserLogin.counts”。

不同模型中的相同查询正在工作。

现在我有两个问题

  • 为什么查询不起作用
  • 我如何在 yii 中调试此类错误
4

2 回答 2

1

你需要有 UserLogin.count 属性,这样当你as在 AR 请求中使用时,Yii 可以将返回的 DB 值分配给模型。

于 2012-11-01T19:23:51.703 回答
0

您需要指定公共财产数量

class UserLogin extends CActiveRecord
{
    public $count = 0;

    public function rules() {
        // ...
        array('count', 'safe'),
        // ...
    }
}

对于调试使用 xdebug for php + ext for FireFox 用于调试 php

也可以使用yii-debug-toolbar(在 yii 分机中搜索)

于 2012-11-02T05:23:44.810 回答