本文整理汇总了PHP中yii\db\Query::addSelect方法的典型用法代码示例。如果您正苦于以下问题:PHP Query::addSelect方法的具体用法?PHP Query::addSelect怎么用?PHP Query::addSelect使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yii\db\Query
的用法示例。
在下文中一共展示了Query::addSelect方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: actionIndex
public function actionIndex()
{
$request = Yii::$app->request;
$menuId = 31;
$theadArray = QueryField::find()->where(['menuId' => $menuId])->asArray()->with('queryTable')->all();
$tables = QueryTable::find()->where(['menuId' => $menuId])->asArray()->all();
$masterTable = $this->getMasterTable($tables);
if (!$masterTable) {
$NullPages = new Pagination(['pageParam' => 'pageCurrent', 'pageSizeParam' => 'pageSize', 'totalCount' => 0, 'defaultPageSize' => 20]);
return $this->render('index', ['models' => [], 'pages' => $NullPages, 'theadArray' => []]);
}
$query = new Query();
$query->from($masterTable['tabName']);
$query->select($masterTable['tabName'] . '.' . 'id');
foreach ($tables as $table) {
if ($table['isMain'] != '1') {
$query->leftJoin($table['tabName'], $table['condition']);
}
}
//排序字段
$attributes = [];
//查询条件
$where = [];
foreach ($theadArray as $thead) {
if ($thead['queryTable']['reName']) {
$addSelect = $thead['queryTable']['reName'];
} else {
$addSelect = $thead['queryTable']['tabName'];
}
$addSelect = $addSelect . '.' . $thead['fieldName'];
if ($thead['makeTbName'] != 1) {
$addSelect = $thead['fieldName'];
}
if ($thead['reName']) {
//组装排序字段
array_push($attributes, $thead['reName']);
//查询字段
$addSelect = $addSelect . ' ' . 'as' . ' ' . $thead['reName'];
} else {
array_push($attributes, $thead['fieldName']);
}
$query->addSelect($addSelect);
//组装查询条件
if ($thead['isQuery'] == '1' && $thead['reName']) {
$where[$thead['reName']] = $request->get($thead['reName']);
} elseif ($thead['isQuery'] == '1') {
$where[$thead['fieldName']] = $request->get($thead['fieldName']);
}
}
$query->where($where);
$pages = new Pagination(['pageParam' => 'pageCurrent', 'pageSizeParam' => 'pageSize', 'defaultPageSize' => 20]);
$sort = new WetSort(['attributes' => $attributes]);
$provider = new ActiveDataProvider(['query' => $query, 'pagination' => $pages, 'sort' => $sort]);
$models = $provider->getModels();
return $this->render('index', ['models' => $models, 'pages' => $pages, 'theadArray' => $theadArray]);
}
示例2: actionReputation
public function actionReputation()
{
$query = new Query();
$query2 = new Query();
$query->addSelect('*')->from('reputation r');
$fullrep = $query->all();
$query2->select('id, user_id, rep_id, timestamp')->from('`reputation_history`')->where('user_id = ' . $this->getUser()->getId());
$myrep = $query2->all();
$sum = ReputationHistory::getReputationHistorySum($this->contentContainer->getId());
return $this->render('reputation', ['user' => $this->contentContainer->attributes, 'rep' => $fullrep, 'myrep' => $myrep, 'sum' => $sum]);
}
示例3: testSelect
public function testSelect()
{
// default
$query = new Query();
$query->select('*');
$this->assertEquals(['*'], $query->select);
$this->assertNull($query->distinct);
$this->assertEquals(null, $query->selectOption);
$query = new Query();
$query->select('id, name', 'something')->distinct(true);
$this->assertEquals(['id', 'name'], $query->select);
$this->assertTrue($query->distinct);
$this->assertEquals('something', $query->selectOption);
$query = new Query();
$query->select('id, name');
$query->addSelect('email');
$this->assertEquals(['id', 'name', 'email'], $query->select);
}
示例4: actionAdminList
function actionAdminList()
{
$query = new Query();
$query->addSelect('c.*')->from([Menu::tableName() . ' c']);
$provider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 100]]);
$model = new MenuForm();
if ($model->load(\Yii::$app->request->post()) && $model->validate()) {
$object = new Menu();
$object->name = $model->name;
$object->url = $model->url;
$object->sort_int = 0;
$object->active = 1;
$object->parent_id = 0;
$object->save();
$model->command_reload_page = 1;
//return $this->redirect(Url::toRoute(['posts/menu-list']));
}
$this->layout = 'admin';
return $this->render('//admin/menu/list.php', ['provider' => $provider, 'model' => $model]);
}
示例5: run
function run()
{
// && $model->contact(Yii::$app->params['adminEmail'])
$this->enable_form = $this->allow_comments();
$comment = new Comments();
$comment->parent_id = 0;
if ($this->enable_form && $comment->load(Yii::$app->request->post()) && $comment->validate()) {
Yii::$app->session->setFlash('commentFormSubmitted');
$comment->active = true;
$comment->user_id = Yii::$app->user->isGuest ? null : Yii::$app->user->identity->id;
$comment->ip = ip2long(Yii::$app->request->getUserIP());
$comment->agent = Yii::$app->request->getUserAgent();
$comment->saveUploadedImage('file');
$comment->save();
return Yii::$app->getResponse()->redirect(Yii::$app->getRequest()->getUrl());
}
$query = new Query();
$query->addSelect('c.*, f.filename, f.thumb_filename, f.size, u.username')->from([Comments::tableName() . ' c'])->leftJoin(User::tableName() . ' u', 'u.id = c.user_id')->leftJoin(Files::tableName() . ' f', 'f.id = c.image_id')->where(['c.active' => true])->andWhere(['c.post_id' => $this->post_id]);
$comment->post_id = $this->post_id;
return $this->render('comments/comments_box', ['comments' => $this->buildTree($query->all()), 'model' => $comment, 'enable' => $this->enable_form]);
}
示例6: findAllAndBuildTree
/**
* Возвращает отсортированные данные
* @return mixed
*/
function findAllAndBuildTree($menu_id)
{
$query = new Query();
$query->addSelect('m.*')->from([$this::tableName() . ' m'])->where(['menu_id' => $menu_id]);
return $this->buildTree($this::findAll(['menu_id' => $menu_id]));
}
示例7: find
public static function find($module, $params = [], $page = 30)
{
$relation = ['country' => ['translations'], 'city' => ['country', 'country.translations', 'airports', 'airports.translations', 'translations'], 'direction' => ['iata', 'from', 'from.translations', 'from.country', 'from.country.translations', 'to', 'to.translations', 'to.country', 'to.country.translations'], 'airport' => ['translations', 'country', 'country.translations', 'city', 'city.translations'], 'airline' => []];
if (!empty($params['relation'])) {
$relation = array_merge($relation, $params['relation']);
unset($params['relation']);
}
$model = 'common\\models\\Received' . ucfirst($module);
if (!class_exists($model)) {
throw new ErrorException('no module > ' . $module);
}
$query = new Query();
$query->select(["{$module}.id"])->from([$module => "received_{$module}"]);
if ($module == 'direction') {
$query->addSelect(["{$module}.popularity"]);
$query->orderBy(['direction.popularity' => SORT_DESC]);
$query->groupBy(['direction.city_to_code', 'direction.city_from_code']);
}
foreach ($params as $key => $value) {
$postfix = '';
if ($key == 'from' || $key == 'to') {
$postfix = "_{$key}";
$key = 'city';
}
if (is_array($value) && $value) {
$query->leftJoin([$key . $postfix => "received_{$key}"], "{$module}.{$key}{$postfix}_code = {$key}{$postfix}.code");
foreach ($value as $_key => $_value) {
if (is_array($_value) && $_value) {
$query->leftJoin([$_key . $postfix => "received_{$_key}"], "{$key}{$postfix}.{$_key}_code = {$_key}{$postfix}.code");
foreach ($_value as $__key => $__value) {
$query->andFilterWhere(["{$_key}{$postfix}.{$__key}" => $__value]);
}
} else {
$query->andFilterWhere(["{$key}{$postfix}.{$_key}" => $_value]);
}
}
} else {
$query->andFilterWhere(["{$module}.{$key}{$postfix}" => $value]);
}
}
$total = $query->count();
$id = $query->column();
if ($page > 1) {
if (!empty($_GET['page'])) {
$_page = $_GET['page'];
} else {
$_page = 0;
}
$id = array_slice($id, $_page > 1 ? ($_page - 1) * $page : 0, $page);
// VarDumper::dump($id);
}
/** @var $model \yii\db\ActiveRecord */
$query = $model::find()->where(['id' => $id])->asArray();
if ($module == 'direction') {
$query->orderBy(['received_direction.popularity' => SORT_DESC]);
}
$query->with($relation[$module]);
if ($page == 1) {
return $query->all();
}
$pagination = new Pagination(['totalCount' => $total, 'pageSize' => $page, 'pageSizeParam' => false]);
if ($page == 1) {
$page = 0;
}
$query->offset(0)->limit($page);
return [$query->all(), $pagination];
}