4

なぜこれが機能しないのか誰か教えてください。

$count_participants = BridgeMeeting::Model()->with('idUserRegistry')->count(array(
    'condition' => 'id_meeting=:id_meeting',
    'select' => 'id_user_registry',
    'distinct' => true,
    'params' => array(
        "id_meeting" => $data->id_meeting
    ),
        ));
4

3 に答える 3

3
$count_participants = BridgeMeeting::Model()->with('idUserRegistry')->count(array(
    'condition' => 'id_meeting=:id_meeting',
    'select' => 'id_user_registry',
    'distinct' => true,
    'params' => array(
        ":id_meeting" => $data->id_meeting
    ),
        ));

パラメータ名も次のようになります:id_meeting

于 2013-03-15T12:13:09.530 に答える
2

Yii のコードを掘り下げると、任意の列リストを指定できる唯一の方法count(distinct <columns>)は、次のように CDbCriteria に「select」を提供することであることがわかりました。

$ar->count(
'select' => 'count(distinct <columns>)',
'condition' => ...,
'params' => ...
);
于 2013-11-19T06:42:05.040 に答える
1

count API

public string count(mixed $condition='', array $params=array ( ))

params そのため、配列として 2 番目の count メソッドのパラメーターに渡すようにしてください。

元。

$count_participants = BridgeMeeting::Model()->with('idUserRegistry')->count(
    array(
        'condition' => 'id_meeting=:id_meeting',
        'select' => 'id_user_registry',
        'distinct' => true,
     ),
    array(
    "id_meeting" => $data->id_meeting
    )
 );

更新: countと組み合わせると->with正しく動作しません。バグを報告する必要があります。

回避策は次のとおりです。

                 BridgeMeeting::Model()->with('idUserRegistry')->count(
                     array(
                        'condition' => 'id_meeting=' . $data->id_meeting,
                        'select' => 'id_user_registry',
                        'distinct' => true,

                        )
                     );

そして、これをデバッグするには、代わりに定数を指定してください$data->id_meeting

于 2013-03-14T17:24:44.893 に答える