ww198787
还是没太明白你问的是啥意思。
是不是想让所有的数据显示倒序?而你不想挨个改?
试试在model里面定义默认的scope
public function defaultScope()
{
return array(
'order' => 'xxxx',
);
}我没用过,应该是可以的,也不会影响ajax排序
你说的这个意思 就是说 如果有100个model文件 那么我要定义100次defaultScope()这个fun是吗? 那跟我在该model下的search()添加一个条件有区别吗,我的意思就是有没有一个基类能控制整个项目所有的查询数据全都是按主键倒叙,还是说这种查询需要我自己补充子类然后继承哪个类? 这么说能理解吗?
- ww198787 回复了 dreamgoods 的回答
$conn = Yii::app->db();
$sql = 'select s.
Name
, SUM(o.Count)/COUNT(o.ShipID) as ave
from tbl_order as o
LEFT JOIN tbl_ship as s ON s.ID = o.ShipIDGROUP BY o.ShipID';
$qRecord = $conn->execute($sql);
这里把qRecord抛到前台就可以了。
注:没有测试,如果不对,下午测试之后再发一份!不要DB 我这SQL不复杂 直接走 model的search()就行,
$criteria=new CDbCriteria;if(Yii::app()->getController()->getAction()->id == "FillingT" ){ $criteria->select = ' s.Name as ShipID,ROUND(SUM(t.Count)/COUNT(t.ShipID),2) as ave '; $criteria->join = 'LEFT JOIN tbl_ship as s ON s.ID = t.ShipID '; $criteria->group = 't.ShipID'; }
问题解决了 在这个model新建属性 ave 就可以了.
应该是你的用法不对。
你在对应点C里面写一个方法protected function getStateName($data,$row){
retrun $data->opType->getStateName(3);
}
然后再V里面 'value' =>array($this,'getStateName'),试试
确实是用法不对, CGridView控件 接收 $model 数据时,每次他都会查询一次值,但是走的是 m层数据 我在c层对 opType 赋值 但是并没有走c层,所以m层的opType 属性还是原来的值,所以报错,把c层的赋值 移到 m层就可以了 用 afterFind .就可以了.
- ww198787 回复了 guishentan 的回答
$form=$this->beginWidget('CActiveForm', array(
'id'=>'login-form', 'enableAjaxValidation'=>true, 'enableClientValidation'=>true, 'clientOptions'=>array( 'validateOnSubmit'=>true, ),
));
回复 @guishentan : 'enableClientValidation'=>true 去掉试试. 还有就是 你的form表单元素 你仔细检查下 是不是 用户名 和 密码 的字段 你命名重复了 标签你可能是不一样的 但是生成 input元素的时候的字段你是不是重复了 也可能导致你说的这种情况.
- ww198787 回答了问题 求教validate相关问题
还有就是 你在 对应提交的action中加入相应的ajax代码了吗?如下
if(isset($_POST['ajax']) && $_POST['ajax']==='user-form') { echo CActiveForm::validate($model); Yii::app()->end(); }