当前位置: 首页>>代码示例>>PHP>>正文


PHP Query::create方法代码示例

本文整理汇总了PHP中yii\db\Query::create方法的典型用法代码示例。如果您正苦于以下问题:PHP Query::create方法的具体用法?PHP Query::create怎么用?PHP Query::create使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在yii\db\Query的用法示例。


在下文中一共展示了Query::create方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: prepare

 /**
  * @inheritdoc
  */
 public function prepare($builder)
 {
     // NOTE: because the same ActiveQuery may be used to build different SQL statements
     // (e.g. by ActiveDataProvider, one for count query, the other for row data query,
     // it is important to make sure the same ActiveQuery can be used to build SQL statements
     // multiple times.
     if (!empty($this->joinWith)) {
         $this->buildJoinWith();
         $this->joinWith = null;
         // clean it up to avoid issue https://github.com/yiisoft/yii2/issues/2687
     }
     if (empty($this->from)) {
         /* @var $modelClass ActiveRecord */
         $modelClass = $this->modelClass;
         $tableName = $modelClass::tableName();
         $this->from = [$tableName];
     }
     if (empty($this->select) && !empty($this->join)) {
         list(, $alias) = $this->getQueryTableName($this);
         $this->select = ["{$alias}.*"];
     }
     if ($this->primaryModel === null) {
         // eager loading
         $query = Query::create($this);
     } else {
         // lazy loading of a relation
         $where = $this->where;
         if ($this->via instanceof self) {
             // via junction table
             $viaModels = $this->via->findJunctionRows([$this->primaryModel]);
             $this->filterByModels($viaModels);
         } elseif (is_array($this->via)) {
             // via relation
             /* @var $viaQuery ActiveQuery */
             list($viaName, $viaQuery) = $this->via;
             if ($viaQuery->multiple) {
                 $viaModels = $viaQuery->all();
                 $this->primaryModel->populateRelation($viaName, $viaModels);
             } else {
                 $model = $viaQuery->one();
                 $this->primaryModel->populateRelation($viaName, $model);
                 $viaModels = $model === null ? [] : [$model];
             }
             $this->filterByModels($viaModels);
         } else {
             $this->filterByModels([$this->primaryModel]);
         }
         $this->_viaModels = !empty($viaModels) ? $viaModels : [];
         $query = Query::create($this);
         $this->where = $where;
     }
     if (!empty($this->on)) {
         $query->andWhere($this->on);
     }
     return $query;
 }
开发者ID:alexinator1,项目名称:yii2-jta,代码行数:59,代码来源:ActiveQuery.php

示例2: relations

 public function relations($model, $attribute)
 {
     $relation = $model->fileRelation($attribute);
     $handlerRelationQuery = $model->fileOption($attribute, 'relationQuery');
     $query = null;
     if ($handlerRelationQuery) {
         $query = Query::create($handlerRelationQuery($model->find()));
     }
     $query = $query ?: new Query();
     return $query->from($relation->via->from[0])->andWhere([key($relation->via->link) => $model->getPrimaryKey()])->indexBy(current($relation->link))->all();
 }
开发者ID:rkit,项目名称:filemanager-yii2,代码行数:11,代码来源:FileBind.php


注:本文中的yii\db\Query::create方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。