tableName() public static méthode

public static tableName ( )
 public function actionTopic($username)
 {
     $this->title = $username . '提的建议 - ' . Yii::$app->name;
     $this->description = '';
     $this->canonical = Yii::$app->params['domain'] . 'member/' . $username . '/topic';
     $user = $this->findModel($username);
     $query = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName())->leftJoin(Node::tableName(), 'node.id = topic.node_id')->leftJoin(User::tableName(), 'user.id = topic.user_id')->where(['node.is_hidden' => 0])->andWhere(['topic.user_id' => $user->id]);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => $query->count()]);
     $model = $query->orderBy(['id' => SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('topic', ['model' => $model, 'user' => $user, 'pagination' => $pagination]);
 }
 public function actionUserMobileFilter($q = null, $id = null)
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $output = ['results' => ['id' => '', 'text' => '']];
     if (!is_null($q)) {
         $sql = 'SELECT id, mobile AS text FROM ' . User::tableName() . ' WHERE mobile LIKE :like ORDER BY mobile ASC LIMIT 25';
         $output['results'] = Yii::$app->db->createCommand($sql, [':like' => "%{$q}%"])->queryAll();
     } elseif ($id > 0 && ($user = User::findOne($id))) {
         $output['results'] = ['id' => $id, 'text' => $user->mobile];
     }
     return $output;
 }
Exemple #3
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = MediaModel::find()->from(['media' => $this->tableName()]);
     $query->innerJoinWith(['mediaAuthor' => function ($query) {
         /* @var $query \yii\db\ActiveQuery */
         return $query->from(['author' => User::tableName()]);
     }]);
     $query->leftJoin(['post' => Post::tableName()], 'media.media_post_id = post.id');
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     $dataProvider->setSort(['attributes' => ArrayHelper::merge($dataProvider->sort->attributes, ['username' => ['asc' => ['username' => SORT_ASC], 'desc' => ['username' => SORT_DESC], 'label' => 'Author', 'value' => 'username']]), 'defaultOrder' => ['id' => SORT_DESC]]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'media_author' => $this->media_author, 'media_post_id' => $this->media_post_id, 'media_comment_count' => $this->media_comment_count]);
     $query->andFilterWhere(['like', 'media_title', $this->media_title])->andFilterWhere(['like', 'media_excerpt', $this->media_excerpt])->andFilterWhere(['like', 'media_content', $this->media_content])->andFilterWhere(['like', 'media_password', $this->media_password])->andFilterWhere(['like', 'media_slug', $this->media_slug])->andFilterWhere(['like', 'media_mime_type', $this->media_mime_type])->andFilterWhere(['like', 'media_comment_status', $this->media_comment_status])->andFilterWhere(['like', 'media_date', $this->media_date])->andFilterWhere(['like', 'media_modified', $this->media_modified])->andFilterWhere(['like', 'post.post_title', $this->post_title])->andFilterWhere(['like', 'author.username', $this->username]);
     return $dataProvider;
 }
Exemple #4
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Post::find();
     // add conditions that should always apply here
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]);
     $this->load($params);
     if (!$this->validate()) {
         // uncomment the following line if you do not want to return any records when validation fails
         // $query->where('0=1');
         return $dataProvider;
     }
     // grid filtering conditions
     $post = Post::tableName();
     $user = User::tableName();
     $query->andFilterWhere([$post . '.id' => $this->id, $post . '.status' => $this->status, 'create_time' => $this->create_time, 'update_time' => $this->update_time, 'author_id' => $this->author_id]);
     $query->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'content', $this->content])->andFilterWhere(['like', 'tags', $this->tags]);
     $query->join('INNER JOIN', $user, $post . '.author_id = User.id');
     $query->andFilterWhere(['like', $user . '.username', $this->username]);
     return $dataProvider;
 }
 public function actionView($nodeName)
 {
     $node = $this->findModel($nodeName);
     if ($node->need_login == 1 && Yii::$app->user->isGuest) {
         Yii::$app->getSession()->setFlash('danger', '你访问的节点需要登陆之后才能查看');
         return $this->redirect('/account/login?next=/node/' . $nodeName);
     }
     if (!empty($node->bg) && $node->use_bg == 1) {
         $this->bg = $node->bg;
     }
     if (!empty($node->bg_color)) {
         $this->bg_color = $node->bg_color;
     }
     $this->title = $node->name . ' - ' . Yii::$app->name;
     $this->description = '';
     $this->canonical = Yii::$app->params['domain'] . 'node/' . $nodeName;
     $query = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName())->leftJoin(Node::tableName(), 'node.id = topic.node_id')->leftJoin(User::tableName(), 'user.id = topic.user_id')->where(['node.id' => $node->id]);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => $query->count()]);
     $model = $query->orderBy(['id' => SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('view', ['model' => $model, 'node' => $node, 'pagination' => $pagination]);
 }
Exemple #6
0
 /**
  * 查找活跃用户
  * @param int $limit
  * @return array|\yii\db\ActiveRecord[]
  */
 public static function findActiveUser($limit = 12)
 {
     $cacheKey = md5(__METHOD__ . $limit);
     if (false === ($items = \Yii::$app->cache->get($cacheKey))) {
         $items = User::find()->joinWith(['merit', 'userInfo'])->where([User::tableName() . '.status' => 10])->orderBy(['merit' => SORT_DESC, '(like_count+thanks_count)' => SORT_DESC])->limit($limit)->all();
         //一天缓存
         \Yii::$app->cache->set($cacheKey, $items, 86400, new TagDependency(['tags' => [NamingHelper::getCommonTag(User::className())]]));
     }
     return $items;
 }
Exemple #7
0
 public function actionRecent()
 {
     $this->title = '最近的主题 - ' . Yii::$app->name;
     $this->description = '';
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => (new Query())->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->where('node.is_hidden = 0')->count()]);
     $topic = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->orderBy(['topic.id' => SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('recent', ['topic' => $topic, 'pagination' => $pagination]);
 }
Exemple #8
0
 /**
  * 热门主题
  * @param int $num 获取几条热门主题
  * @return array|\yii\db\ActiveRecord[]
  */
 static function HotTopic($num = 8)
 {
     return $topic = (new Query())->select('topic.*, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->andWhere(['between', 'topic.created', strtotime(date('Y-m-d H:i', time())) - 86400, strtotime(date('Y-m-d H:i', time()))])->orderBy(['topic.reply' => SORT_DESC])->limit($num)->all();
 }
<?php

return ['adminEmail' => '*****@*****.**', 'supportEmail' => '*****@*****.**', 'user.passwordResetTokenExpire' => 3600, 'mdm.admin.configs' => ['userTable' => \common\models\User::tableName(), 'menuTable' => '{{%auth_menu}}'], 'ckeditorConfig' => ['language' => 'zh-cn', 'font_names' => '宋体;楷体;黑体;微软雅黑;隶书;仿宋;Arial;Comic Sans MS;Courier New;Tahoma;Times New Roman;Verdana']];
 /**
  * @inheritdoc
  */
 public function safeUp()
 {
     $this->createTable($this->tableName, ['id' => $this->primaryKey(), 'model_name' => $this->string()->notNull(), 'model_id' => $this->integer()->notNull(), 'user_id' => $this->integer()->defaultValue(null) . ' COMMENT "User"', 'name' => $this->string()->defaultValue(null) . ' COMMENT "Name"', 'content' => $this->text()->notNull() . ' COMMENT "Content"', 'tree' => $this->integer()->defaultValue(null), 'lft' => $this->integer()->notNull(), 'rgt' => $this->integer()->notNull(), 'depth' => $this->integer()->notNull(), 'status_id' => $this->smallInteger(2)->notNull()->defaultValue(0) . ' COMMENT "Status"', 'published' => $this->boolean()->notNull()->defaultValue(1) . ' COMMENT "Published"', 'position' => $this->integer()->notNull()->defaultValue(0) . ' COMMENT "Position"', 'created_at' => $this->integer()->notNull() . ' COMMENT "Created at"', 'updated_at' => $this->integer()->notNull() . ' COMMENT "Updated at"'], $this->tableOptions);
     $this->addForeignKey('fk-comment-user_id-user-id', $this->tableName, 'user_id', \common\models\User::tableName(), 'id', 'SET NULL', 'CASCADE');
 }
Exemple #11
0
 /**
  * 获取我关注的人
  * @param bool $onlyId
  * @return array|\yii\db\ActiveRecord[]
  */
 static function User($onlyId = true)
 {
     if ($onlyId) {
         if (!($FollowUser = Yii::$app->cache->get('FollowUserId' . Yii::$app->user->id))) {
             $FollowUser = ArrayHelper::map(Follow::find()->select('follow_id')->where(['user_id' => Yii::$app->user->id, 'type' => 1])->asArray()->all(), 'follow_id', 'follow_id');
             Yii::$app->cache->set('FollowUserId' . Yii::$app->user->id, $FollowUser, 0);
         }
     } else {
         if (!($FollowUser = Yii::$app->cache->get('FollowUser' . Yii::$app->user->id))) {
             $FollowUser = (new Query())->from(User::tableName())->where(['in', 'id', Follow::User()])->all();
             Yii::$app->cache->set('FollowUser' . Yii::$app->user->id, $FollowUser, 0);
         }
     }
     return $FollowUser;
 }
 /**
  * Displays a single Topic model.
  * @param integer $id
  * @return mixed
  * @throws BadRequestHttpException
  * @throws NotFoundHttpException
  * @throws \Exception
  */
 public function actionView($id)
 {
     $model = $this->findModel($id);
     if ($model->need_login == 1 && Yii::$app->user->isGuest) {
         Yii::$app->getSession()->setFlash('danger', '你访问的建议需要登陆之后才能查看');
         return $this->redirect('/account/login?next=/topic/' . $id);
     }
     if (!empty($model->node->bg) && $model->node->use_bg == 1) {
         $this->bg = $model->node->bg;
     }
     if (!empty($model->node->bg_color)) {
         $this->bg_color = $model->node->bg_color;
     }
     $this->title = $model->title . ' - ' . Yii::$app->name;
     if (isset($model->content->content)) {
         $this->description = $model->node->name . ' - ' . $model->user->username . ' - ' . Helper::truncateUtf8String($model->content->content, 200);
     } else {
         $this->description = $model->node->name . ' - ' . $model->user->username . Helper::truncateUtf8String($model->title, 200);
     }
     $this->canonical = Yii::$app->params['domain'] . 'topic/' . $id;
     $replyQuery = (new Query())->select('reply.*, user.username, user.avatar, user.role')->from(Reply::tableName())->leftJoin(User::tableName(), 'user.id = reply.user_id')->where(['reply.topic_id' => $id]);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['ReplyPageSize'], 'totalCount' => $replyQuery->count()]);
     $replyList = $replyQuery->offset($pagination->offset)->limit($pagination->limit)->all();
     $reply = new Reply();
     if (!Yii::$app->user->isGuest) {
         $model->updateCounters(['click' => 1]);
         $reply = new Reply();
         if ($reply->load(Yii::$app->request->post()) && $reply->save()) {
             Yii::$app->cache->delete('ReplyCount');
             $this->redirect('/topic/' . $id . '#Reply');
         }
         return $this->render('view', ['model' => $model, 'reply' => $reply, 'replyList' => $replyList, 'pagination' => $pagination]);
     } else {
         return $this->render('view', ['model' => $model, 'reply' => $reply, 'replyList' => $replyList, 'pagination' => $pagination]);
     }
 }
Exemple #13
0
 /**
  * 查找活跃用户
  * @param int $limit
  * @return array|\yii\db\ActiveRecord[]
  */
 public static function findActiveUser($limit = 12)
 {
     return User::find()->joinWith(['merit', 'userInfo'])->where([User::tableName() . '.status' => 10])->orderBy(['merit' => SORT_DESC, '(like_count+thanks_count)' => SORT_DESC])->limit($limit)->all();
 }
Exemple #14
0
 /**
  * 根据原始ID获取最新的续约订单
  * @param $id
  */
 public static function getREQPlanOfId($id)
 {
     if (empty($id)) {
         return false;
     }
     $record_arr = (new Query())->from(PlanRecord::tableName() . ' as pr')->select(['pr.id', 'u.username', 'u.realname', 'pr.money_insure', 'pr.money_op', 'pr.money_warning', 'pr.money_force', 'pr.money_settlement', 'pr.status', 'pr.parent_id'])->leftJoin(User::tableName() . ' as u', 'pr.user_id = u.id')->where(['pr.parent_id' => $id, 'pr.parent_type' => PlanRecord::PARENT_TYPE_RENEW])->one();
     if (empty($record_arr)) {
         return false;
     }
     if ($record_arr['status'] == PlanRecord::STATUS_EXPIRED) {
         return self::getREQPlanOfId($record_arr['id']);
     }
     return $record_arr;
 }
Exemple #15
0
 public function getUserEgreso()
 {
     return $this->hasOne(\common\models\User::className(), ['id' => 'egr_id_user'])->from(\common\models\User::tableName() . ' uegr');
 }
 public function actionTopic()
 {
     $this->title = '关注的建议' . ' - ' . Yii::$app->name;
     $this->description = '';
     if (Yii::$app->user->isGuest) {
         return $this->redirect('/account/login?next=/account/topic');
     }
     $query = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName())->leftJoin(Node::tableName(), 'node.id = topic.node_id')->leftJoin(User::tableName(), 'user.id = topic.user_id')->where(['in', 'topic.id', Follow::Topic()]);
     $pagination = new Pagination(['defaultPageSize' => Yii::$app->params['pageSize'], 'totalCount' => $query->count()]);
     $model = $query->orderBy(['id' => SORT_DESC])->offset($pagination->offset)->limit($pagination->limit)->all();
     return $this->render('topic', ['model' => $model, 'pagination' => $pagination]);
 }
    /**
     * @return string
     */
    public static function getUserCountTotalSql()
    {
        $param = self::USER_COUNT_TOTAL;
        $userTable = User::tableName();
        return <<<SQL
select '{$param}' as param, count(*) as value from {$userTable}
SQL;
    }
 public function getUserUpdatedBy()
 {
     return $this->hasOne(\common\models\User::className(), ['id' => 'updated_by'])->from(\common\models\User::tableName() . ' uupd');
 }
Exemple #19
0
 public function getUserProfile()
 {
     return $this->hasOne(Profile::className(), ['user_id' => 'id'])->viaTable(User::tableName(), ['id' => 'user_id']);
 }
Exemple #20
0
 static function Ranking()
 {
     if (!($Ranking = Yii::$app->cache->get('Ranking'))) {
         $Ranking = (new Query())->select('count(topic.id) topic_count, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName(), 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where(['node.is_hidden' => 0])->groupBy(['topic.user_id'])->orderBy(['topic_count' => SORT_DESC])->limit(10)->all();
         Yii::$app->cache->set('Ranking', $Ranking, 86400);
     }
     return $Ranking;
 }
Exemple #21
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getReplyList()
 {
     return (new Query())->select('reply.*, topic.title, node.enname, node.name, user.username, user.avatar')->from(Reply::tableName())->leftJoin(Topic::tableName(), 'topic.id = reply.topic_id')->leftJoin(Node::tableName(), 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = reply.user_id')->where(['node.is_hidden' => 0])->andWhere(['reply.user_id' => $this->id])->orderBy(['id' => SORT_DESC])->limit(10)->all();
 }