lithium \ data \ model \ queryを読みましたが、結合の例は見当たりませんでした。
1575 次
2 に答える
5
Lithium との結合を実行するには、複数の方法があります。
- Lithium は、関係を定義した場合に結合を処理します (マニュアルの例)。
join()
メソッドを使用して、既存の Query オブジェクトに結合を追加できます(APIを参照してください)。- key を使用して、Query オブジェクトの配列をファインダーに渡すことができます
joins
。 - を使用して、SQL を接続に直接渡すことができます
Connection->read()
。
他のメソッドについては十分に文書化されているので、Query オブジェクトをファインダーに渡す例を示します。
$fields = array('id', 'name', 'slug');
$joins = array();
$joins[] = new Query(array(
'source' => 'client_tests',
'constraint' => array('Test.id' => 'client_tests.test_id'),
));
$conditions['client_id'] = $this->data['client_id'];
$tests = Test::all(array(
'conditions' => $conditions,
'fields' => $fields,
'joins' => $joins
));
はsource
結合するテーブルでconstraint
あり、結合条件です。Lithium は検索テーブルをモデルの名前にエイリアスするため、それを制約で使用します。次に、必要なその他のパラメーターとともに結合を任意のファインダーに渡すことができます。
執筆時点では、結合 (および関係) はリレーショナル データベースでのみ機能し、MongoDB の DBRef などでは機能しないことに注意してください。
更新: リンクジャックされたリンクを削除しました。
于 2012-02-25T07:31:02.870 に答える