GridView可以设置一个单元格的显示颜色吗
你需要 contentOptions 这个属性
可以看我之前写的一个demo http://yiilib.com/topic/716/Yii2 GridView中实现断行断字
可以的,怎么控制都可以
GridView可以设置一个单元格的显示颜色吗
你需要 contentOptions 这个属性
可以看我之前写的一个demo http://yiilib.com/topic/716/Yii2 GridView中实现断行断字
可以的,怎么控制都可以
$Grouporder=Grouporder::find()->where(['state'=>2,'id'=>$id])->asArray()->all();
foreach ($Grouporder as $key=>$value) {
$map['id'] = array('in',$value['orderId']);
$Order=Ordermanagement::find()->where($map)->asArray()->all();
}
IN 多条查询语句 不好事儿 求高手指导 谢谢
我这里的$arr是一个索引数组。where条件的意思是 status=1和category_id在$arr这个数组里面能找到的条件
把你的$value[‘orderId’]都打印初来,查看一下是否是你预期的值
用with和延迟加载把
http://www.yiichina.com/doc/guide/2.0/db-active-record#
你这个in写法好像thinkphp的,,,怪不得我看着好熟悉。。这种问题,你百度一下。就能找到,建议楼主遇事多百度O(∩_∩)O~
Unknown Property – yii\base\UnknownPropertyException
Setting unknown property: yii\filters\AccessControl::0
基本可以肯定你的控制器的behaviors方法的rules值写错了,看好了:rules的每个值是一个数组,大概像这样rules => [['actions' => ['create',],'allow' => true,'roles' => ['@']]]
,
我猜你写成了这样rules => ['actions' => ['create',],'allow' => true,'roles' => ['@']]
,
好好看看,最外层少了一层方括号
Setting unknown property: yii\filters\AccessControl::0,
意思是未知属性 0, 数组写错了,把代码贴出来,看看就知道了
如何获取部分字段?
举个栗子:User表内,我只想知道createTime > 1491734306的id,而不需要其他字段。
顺便向老司机请教:我听说效率最高的方式是获取“我需要的字段”,而非整条。
目前所知道的所有Find方法,都只能得到整条数据。
是我了解的信息有误,还是Yii2没有对这方面做“效率考量”?
如果想获取某几个字段,用如下方式:
如楼上所言。
这些都是基础的东西,yii怎会没有考虑到。
基础文档啥的,还是要先看一看的。
http://www.yiichina.com/doc/guide/2.0/db-query-builder
asArray()->all()好像还是不太完美,因为涉及连接表的字段的话,就会以数组下标形式存在
比如主表是A,某些信息需要连接表B来查,那么代码类似这样:$retArr = A::find()->select(['A.name','A.age','B.school'])->joinWith('B')->filterWhere(['dddd'=>[$a,$b])->asArray()->all();
这样的数组$retArr信息除了’name’,’age’,’school’之外,还有一个’B’为下标的子数组,这个数组就是多余的
我本地环境是 wampsever php是7.0.0版本的 ,请问各位大佬怎么把调试输出时候显示的绝对路径 去掉啊?
php.ini
关闭debug
关掉xdebug
yii2 没有登录就会跳site/login,怎现在怎么关掉这个登录功能?
这里输入代码
‘user’ => [
‘user’ => [
‘loginUrl’=>null,
将配置文件里面的loginUrl属性设置为空,就可了
controller 里面取消 AccessControl 那部分代码,也可以自己写一段代码控制这部分逻辑,再或者按照上面这样配置 User相关参数。
将你的控制器的behaviors方法删掉就可以了,这样每个方法都可以免登录访问
site控制器里有个behaviors方法,它做了一些验证,改写规则或者删掉都行
在控制器里加上 public $enableCsrfValidation=false;
我是下面这样写的,但提交是总是报错inputtime为空,查了手册和资料是这样写的吧
public function behaviors()
{
return [
'timestamp'=>[
'class' => TimestampBehavior::className(),
'attributes' => [
BaseActiveRecord::EVENT_BEFORE_INSERT => ['inputtime','updatetime'],
BaseActiveRecord::EVENT_BEFORE_UPDATE => 'updatetime'
],
'value' => time()
]
];
}
另外这里默认提供值的是11位整数,不是时间。
use yii\behaviors\TimestampBehavior;
public function behaviors()
用beforesave函数打印一下你存储时的对象。看看是什么值
用beforesave函数打印一下你存储时的对象。看看是什么值
配置如下,URL链接也是正确的 如:r=search/index&keyword=网站建设&page=4
但是结果始终之在第一页:
请问是哪里错了。
`public function actionIndex(){
$sphinx = new SphinxClient();
$sphinx->setMatchMode(SPH_MATCH_ANY);
$sphinx->SetServer ( 'localhost', 9312 );//coreseek的主机名和端口
$sphinx->SetArrayResult ( true );//设置返回结果集为php数组格式
$key=Yii::$app->request->post('keyword','网站建设');
if(!$key){
$key=Yii::$app->request->get('keyword');
}
$result = $sphinx->query ($key, "mysql");//xxxx是查询的内容,mysql是测试的配置文件中系统默认的类名
$total=$result['total'];
$config = ['params' => ['keyword' => $key],'totalCount'=>$total,'defaultPageSize'=>10];
$pagination = new Pagination($config);
$sphinx->SetLimits($pagination->offset,$pagination->limit,1000);
$sphinx->SetMaxQueryTime(10);//最大搜索时间
$result = $sphinx->query ($key, "mysql");
if($result['total']){
$ids = ArrayHelper::getColumn($result['matches'], 'id');
}else{
$ids =[];
}
$rows=Company::find()->where(['in','id',$ids])->asArray()->all();
return $this->render('index',[
'rows'=>$rows,
'pagination'=>$pagination,
'total'=>$total,
'keyword'=>$key,
]);
}
`
可以这样解决,自己手动获取$page
再把它放到Pagination的配置里面去
你记得,本身不配置params的时候,它都是从get参数里去取的,所以在你的引导超链接里岛上w关键字,在控制器里去拿到查询,这样分页会自带这个关键字的。这样的分页,什么都不用配置,感觉比较好
点击第二页也还是显示的选中第一页吗?那展示出来的数据是第一页的还是第二页的?视图的代码呢
请问你的这个sphinx是怎么配置的,能就这样实例化的用?
use yii\widgets\LinkPager;
r=search/index&page=7
怎样改成:
r=search/index&w=关键词&page=7
这样的格式?
在new Pagination($config)的时候,除了你要的配置,在config里加入’params’ => [‘w’ => ‘关键词’],也就是
路由
RT,updateAll返回2,但是数据库并没有更新;
$result = $this->updateAll(array('status' => 1), 'store_id=:store_id', array(':store_id' => $store_id));
$result返回2.
数据库:
可以看出,数据库并没有改;
sqlLog:
2017/04/07 11:22:08 [trace] [system.db.CDbCommand] Executing SQL: UPDATE `slb_stock_balance` SET `status`=:yp0 WHERE store_id=:id
我记得有个参数可以把 :yp0 这个部分也显示到log中的,然后你根据 sql进行反查就行了。