1

yii のアクティブ レコードに行き詰まっています。

私のデータベースの各テーブルにモデルを使用しています。

私が取得しようとしているSQLは、3つのテーブルからのクエリと結合です。

私が達成したいのは、SQLコマンドと同等です:

   SELECT  location_code as stopkey, bay_no bay_no, description stop_name, route_area_code route_area_code, latitude latitude, longitude, build_code build_code, message_time message_time, ip_address ip_address, route.route_code route, make make, last_impact last_impact, impact_count impact_count, last_bootup last_bootup, bootup_count bootup_count, last_active_hour last_active_hour, last_active_day last_active_day, operator.operator_code operator_code, routes routes, bearing  
                FROM snapshot_stop_status route
                JOIN  route_visibility ON route.route_id = route_visibility.route_id
                JOIN  operator ON operator.operator_id = route_visibility.operator_id
                WHERE usernm = 'me'

    ORDER BY  location_code

これが私がこれまでに試したことです:

 public function relations() {

            return array(
              'RoutesVisibility' =>array(self::MANY_MANY,'route_visibility','route_id'),

            );
        }

モデルの関係関数を使用してこれを達成するにはどうすればよいですか?

あらゆる種類の助けをいただければ幸いです

4

1 に答える 1

1

route_visibility は、オペレータを snapshot_stop_status に結び付ける結合テーブルです。したがって、yii では、リレーションを実行するテーブルを指定できます。

'operators' =>array(self::MANY_MANY,'Operator','route_visibility(route_id,operator_id )'),

そしてオペレーターで:

'routes' =>array(self::MANY_MANY,'Route','route_visibility(operator_id, route_id)'),

次に、次のような方法でリクエストできます。

$criteria = new CDbCriteria;
$criteria->with = array('operators' => array('condition' => 'usernm = "me"'));
$models => Route:model()->findAll($criteria);
于 2013-02-18T13:16:11.410 に答える