質問
Lithium Data Model Queryを読みましたが、結合の例はありませんでした。
解決
リチウムで結合を実行するには、複数の方法があります。
- リチウムは、関係を定義している(あなたのために結合)を処理します(マニュアルの例).
- を使用して既存のクエリオブジェクトに結合を追加できます
join()
方法(を参照してくださいAPI)). - キーを使用して一連のクエリオブジェクトをファインダーに渡すことができます
joins
. - SQLを使用して接続に直接渡すことができます
Connection->read()
.
他の方法はかなりよく文書化されているので、クエリオブジェクトをファインダーに渡す例を示します。
$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
結合基準です。リチウムエイリアスモデルの名前にテーブルを検索するので、制約でそれを使用してください。その後、必要な他のパラメーターとともに、任意のファインダーに参加を渡すことができます。
執筆時点では、結合(および関係)は、MongodbのDBREFのようなものではなく、リレーショナルデータベースでのみ動作することに注意してください。
アップデート: :リンクジャックされたリンクを削除しました。
他のヒント
関係を設定した場合(Hasone、hasmany、またはbelumstoを使用して)、関連するデータを取得することで、 with
あなたのオプションのキー find
電話。
このような:
$categories = Categories::find('all', array(
'with' => 'Products'
));
をチェックしてください 関係に関するマニュアルの章 詳細については。
所属していません StackOverflow