用YII实现多重查询(基于tag)
// 生成:
// 氛围:浪漫 / 商务会谈 / 茅草屋...
// 菜系:川菜 / 鲁菜 / 家常菜...
// 区域:东区 / 西区 / 南区 / 北区...
// 这样的样式,并且最好能接受点击,并且最好在点击后调用ajax更新下面的查询结果
public static function tag_list($tablename, $options=array()) {
$r=' <ul class="select">';
。。。
return $r;
}
<?php echo CAnjoTag::tag_list('Restaurant', array('click_callback'=>'tag_clicked')); ?>
<script>
function tag_clicked(ids)
{
// console.log(ids);
$('#rest-grid').load('?r=rest/ajaxAction&action=rest_query', {tagtext_ids: ids});
}
</script>
public function actionAjaxAction($action)
{
$r='';
switch ($action)
{
case 'rest_query':
$ids=Yii::app()->request->getParam('tagtext_ids');
if (substr($ids, -1)==',') $ids=substr($ids, 0, -1); //删除结尾的 ,
$ids=trim($ids);
if ($ids!='')
{
$cond="id in (select record_id from {{tag_refer}} where tag_text_id in ($ids))";
$criteria = new CDbCriteria;
$criteria->condition=$cond; $count = Restaurant::model()->count($criteria);
$pager = new CPagination($count);
$pageSize=10;
$pager->params = array('tagtext_ids'=>$ids, 'action'=>'rest_query');//分页中添加其他参数
$pager->pageSize=$pageSize;
$pager->applyLimit($criteria);
$dataProvider=new CActiveDataProvider('Restaurant', array(
'criteria'=>$criteria,
'sort'=>array(
'defaultOrder'=>'id desc',
),
'pagination'=>$pager,
));
$this->renderPartial('_query_result', array('dataProvider'=>$dataProvider));
die();
}
break;
} echo $r;
}
用YII实现多重查询(基于tag)的更多相关文章
- YIi 权限管理和基于角色的访问控制
验证和授权(Authentication and Authorization) 定义身份类 (Defining Identity Class) 登录和注销(Login and Logout) 访问控制 ...
- php yii多表查询
一个Company记录可以对应多个CompanyUser纪录Company表: [['id', 'nature_id', 'scale_id', 'pro_id', 'created_at', 'up ...
- Yii Active Record 查询结果转化成数组
使用Yii 的Active Record 来获取查询结果的时候,返回的结果集是一个对象类型的,有时候为了数据处理的方便希望能够转成数组返回.比如下面的方法: // 查找满足指定条件的结果中的第一行 $ ...
- day056-58 django多表增加和查询基于对象和基于双下划线的多表查询聚合 分组查询 自定义标签过滤器 外部调用django环境 事务和锁
一.多表的创建 from django.db import models # Create your models here. class Author(models.Model): id = mod ...
- 基于Tag的Docker自动构建
构建规则 一旦您的Tag符合“release-v$version"的形式,将触发自动构建:1)若您有$version相关的Tag构建规则,则以$version的Tag规则帮您构建:2)若您没 ...
- hbase查询基于标准sql规范中间件Phoenix
Phoenix是个很好的hbase 查询工具,在hbase中安装也很简单,可以按照 http://www.cnblogs.com/laov/p/4137136.html 这个连接中进行配置客户端和服务 ...
- Yii 之数据库查询
模型代码: <?php namespace app\models; use yii\db\ActiveRecord; class Test extends ActiveRecord{ } 控制器 ...
- Django day08 多表操作 (三) 基于对象的跨表查询 基于双下划线的多表查询
一: 基于对象的跨表查询 1. 一对一 正向: 反向: 2. 一对多 正向: 反向: 3.多对多 正向: 反向: 4.*****基于对象的多表查询 二: 基于双下划线的多表查询 1. 连表查询 一对一 ...
- YII进行数据查询及类库追踪
一般处理过程: 模型进行数据操作,继承自CActiveRecord (活跃记录) AR数据库向上的封装.AR通过OOP面向对象方式操作数据库.AR须要终于转变为详细的sql语句.通过一个中间类(cri ...
随机推荐
- 关于group_concat函数拼接字符超长的问题
昨天测试的人火急火燎的找我,跟我说数据不对!说明情况后我去查看,原来是数据上有个子查询出来的字段没有完全展示 问题很明显,就是数据被截断了.下面贴上我写的查询 wyids_是正确的显示,通过它子查询出 ...
- Linux : Linux命令
接触linux一段时间了,在网上搜罗了一些命令,以备后用.我有点爱上Linux了. 来自 :http://www.php100.com/html/webkaifa/Linux/2009/1106/34 ...
- mfc画波形函数
void CMyPicoTestDlg::DrawWave(CDC *pDC,CRect &rectPicture) { float fDeltaX; float fDeltaY; int n ...
- mptcp文献汇总
1 https://www.blackhat.com/docs/us-14/materials/us-14-Pearce-Multipath-TCP-Breaking-Todays-Networks- ...
- Tomcat注入到系统服务中,实现服务自启动及常驻
步骤一.打开service.bat 并修改(推荐notepad++): 1.set SERVICE_NAME=Tomcat6(服务名称,可在命令行中通过该名字进行服务的控制(启动/关闭)) 2.se ...
- LeetCode: 448 Find All Numbers Disappeared in an Array(easy)
题目: Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice an ...
- LeetCode: 463 Island Perimeter(easy)
题目: You are given a map in form of a two-dimensional integer grid where 1 represents land and 0 repr ...
- Dapper的正确使用姿势
本文demo适用于MySQL Dapper优势和缺点 优点 高性能.易排查.易运维.灵活可控 缺点 和EF相比,手写sql当修改表结构不易发现bug. 习惯了EF后再来使用Dapper,会很难适应那种 ...
- 无法打开包括文件:“SDKDDKVer.h”: No such file or directory
在已经装有Visual Studio 2010的系统中,同时安装Visual Studio 2012,安装过程很顺利,但到使用VS2013时,却出问题了. 本文主要介绍:VS中新建工程编译时出现,“无 ...
- 51nod1352(exgcd)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1352 题意:中文题诶- 思路:exgcd 显然题目可以描述为: ...