あなたはモデル関係の考え方を理解していないと思います。私は例を説明しようとします。
モデル関係は結合をまったく行いません。関連するモデルをリクエストすると、追加のクエリが実行されます。ただしhttps://docs.phalconphp.com/en/3.2/db-models-relationships
:モデルの関係について
$user = Users::findFirst(12);
$user->videos; // This will return all videos for this user
さらに詳しい情報:あなたがそうのようにそれを使用することができます上で定義された関係で
モデルリレーションズ
public function initialize()
{
$this->hasMany('id', 'Models\ServicesVideos', 'service_id', [
'alias' => 'videos',
'params' => [
'order' => 'position ASC',
'conditions' => 'type = :type:',
'bind' => [
'type' => get_class($this)
]
]
]);
}
あなたは2つまたはmに参加する必要がありますあなたがクエリービルダーを使用したい鉱石のテーブル。
$lang = $this->getDI()->getSession()->language;
$cacheFile = 'news-'. $lang;
$items = $this->modelsManager->createBuilder()
->columns([
'main.id',
'main.title',
'main.slug',
'main.summary',
'upload.id AS imageId',
'upload.filename AS imageFilename',
'upload.ver AS uploadVersion',
])
->from(['main' => 'Models\News'])
->leftJoin('Models\Uploads', 'upload.foreign_key = main.id AND upload.section = "newsImage" AND upload.is_active = "1" AND upload.is_default = "1"', 'upload')
->where('main.is_active = 1')
->andWhere('main.lang = :lang:', ['lang' => $lang])
->orderBy('main.ord ASC')
->getQuery()->cache(['key' => $cacheFile])->execute();
クエリビルダについての詳細情報:そこhttps://docs.phalconphp.com/en/3.2/db-models
ねえ...私はちょうど何か、hasOneの/ hasManyの機能でのparam配列:) はありがとうを行方不明になりました! – Finkle