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


PHP Book::tableName方法代码示例

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


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

示例1: applyFilterForRelatedData

 /**
  * Применение фильтров по связанным данным модели.
  * Поскольку модель имеет 2 связи многие ко многим - необходимо иметь возможность осуществлять строгую
  * фильтрацию по обеим связям. На чистом AR это сделать крайне проблематично, в силу этого часть запроса
  * сформирована вручную.
  *
  * @param ActiveQuery $query
  * @param array $tagIds
  * @param array $authorIds
  */
 public static function applyFilterForRelatedData(ActiveQuery $query, array $tagIds = [], array $authorIds = [])
 {
     if ($tagIds && $authorIds) {
         // Строгая фильтрация по обеим полям
         // Произведение фильтруемого количества меток на количество авторов - даст требуемое значение
         // для фильтрации по обеим критериям
         $cnt = count($tagIds) * count($authorIds);
         $query->addSelect([Book::tableName() . '.*', 'COUNT(book_at_tag.book_id) AS cntTag', 'COUNT(book_at_author.book_id) AS cntAuthor'])->leftJoin('book_at_tag', '`book`.`id` = `book_at_tag`.`book_id`')->leftJoin('book_at_author', '`book`.`id` = `book_at_author`.`book_id` ')->andFilterWhere(['tag_id' => array_values($tagIds), 'author_id' => array_values($authorIds)])->groupBy(['book_at_tag.book_id', 'book_at_author.book_id'])->having('cntTag = ' . $cnt)->andHaving('cntAuthor = ' . $cnt);
     } elseif ($tagIds || $authorIds) {
         if ($tagIds) {
             // Применение фильтра по наличию всех меток в $tagIds для объекта $query.
             $term = 'tag';
             $list = $tagIds;
         } else {
             // Применение фильтра по наличию всех авторов в $authorIds для объекта $query.
             $term = 'author';
             $list = $authorIds;
         }
         $query->addSelect([Book::tableName() . '.*', 'COUNT(' . Book::tableName() . '.id) AS cnt'])->joinWith($term . 's')->andFilterWhere([$term . '_id' => array_values($list)])->groupBy('book_id')->having('cnt = ' . count($list));
     }
 }
开发者ID:Rey8d01,项目名称:book-catalog,代码行数:31,代码来源:Book.php

示例2: down

 public function down()
 {
     echo "m151129_133034_books_table_create cannot be reverted.\n";
     $this->dropTable(\app\models\Book::tableName());
 }
开发者ID:ArthurZagidullin,项目名称:yii2-booktest,代码行数:5,代码来源:m151129_133034_books_table_create.php

示例3: safeDown

 public function safeDown()
 {
     $this->dropForeignKey('fk_book_author', Book::tableName());
 }
开发者ID:artpro676,项目名称:simple_library,代码行数:4,代码来源:m150925_121445_add_fk_book_author.php

示例4: init

 public function init()
 {
     $this->tableName = Book::tableName();
     parent::init();
 }
开发者ID:artpro676,项目名称:simple_library,代码行数:5,代码来源:m150925_110547_create_book_table.php

示例5: init

 /**
  * @inheritdoc
  */
 public function init()
 {
     parent::init();
     if ($this->scenario == 'update') {
         $data = Book::find()->where([Book::tableName() . '.id' => $this->id])->joinWith(['categories' => function ($query) {
             $query->select(['id', 'name']);
             $query->asArray();
         }, 'users' => function ($query) {
             $query->select(['id', 'name', 'surname']);
             $query->asArray();
         }])->one();
         $this->categories = [];
         $this->users = [];
         if ($data && $data->categories) {
             foreach ($data->categories as $category) {
                 $this->categories[] = $category['id'];
                 $this->categoriesCurrent[$category['id']] = $category['name'];
             }
         }
         if ($data && $data->users) {
             foreach ($data->users as $user) {
                 $this->users[] = $user['id'];
                 $this->usersCurrent[$user['id']] = $user['name'] . ' ' . $user['surname'];
             }
         }
     }
 }
开发者ID:nepster-web,项目名称:yii2-test-job,代码行数:30,代码来源:BookForm.php

示例6: status

 /**
  * @param int $state
  * @return $this
  */
 public function status($state = Book::STATUS_ACTIVE)
 {
     $this->andWhere([Book::tableName() . '.status' => $state]);
     return $this;
 }
开发者ID:nepster-web,项目名称:yii2-test-job,代码行数:9,代码来源:BookQuery.php


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