user 表
userid username
utree 存取树级关系表
userid parentid
关联了两张表之后,用GridView已经实现了查询表里的数据,但我想增加一个自定义字段,
通过utree下的parentid对应user.userid得到该条记录的父级username.
请问如何在GridView实现呢?
在user的Modle里面写一个关系:
然后在GridView直接写’parent.username’应该就可以了
user 表
userid username
utree 存取树级关系表
userid parentid
关联了两张表之后,用GridView已经实现了查询表里的数据,但我想增加一个自定义字段,
通过utree下的parentid对应user.userid得到该条记录的父级username.
请问如何在GridView实现呢?
在user的Modle里面写一个关系:
然后在GridView直接写’parent.username’应该就可以了
我想查询一个表的数据,优先查询地区是本地的
$find=$this->find()->where(['>','p_partytime',date('Y-m-d H:i:s',time())])->andWhere(['p_area'=>$area])->orderBy('p_partytime asc');
$not=$this->find()->where(['>','p_partytime',date('Y-m-d H:i:s',time())])->andWhere(['<>','p_area',$area])->orderBy('p_partytime asc');
return $find->union($not)->offset($offset)->limit(10)->asArray()->all();
但执行的sql语句是这样的
(SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area`='2') ORDER BY `p_partytime` LIMIT 10 OFFSET 10) UNION ( SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area` <> '2') ORDER BY `p_partytime` )
而我想要执行的sql语句是这样的
(SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area`='2') ORDER BY `p_partytime`) UNION ( SELECT * FROM `pet_party` WHERE (`p_partytime` > '2016-07-30 18:24:15') AND (`p_area` <> '2') ORDER BY `p_partytime` ) LIMIT 10 OFFSET 10
前面先限制了条数在第一条语句里,而我想两条都查完之后在limit限制条数
请问怎么在我model查询的代码基础上更改?
麻烦各位大神帮忙!
我个人认为吧,如果语句复杂,不如直接写sql。
你这个可以这么改
改成:
最后生成的语句类似如此:
yii2一个视图调用两个模型
第二个模型获取不到数据吗?
在渲染视图的控制器方法中,查询以后,渲染到页面即可
视图中就可以使用$data1,$data2了。
有个脚本需要执行很长时间 ,本地运行没问题,放到服务器上时 过段时间就出现 MySQL serve has gone away
错误
请问下 ,怎么Yii有没函数判断 数据库是否断开了的函数,判断成功后怎么执行重连MySQL?
用捕获异常的方式处理,如果有异常抛出,就重新连接数据库,不过这种方式治标不治本,最好还是能找出数据库宕机的原因
为什么不想着去处理MYSQL为什么宕机反而是想着就算是宕机也要重新连接数据库呢?
用捕获异常的方式处理,如果有异常抛出,就重新连接数据库,不过这种方式治标不治本,最好还是能找出数据库宕机的原因@ 巡洋艦㊣ 多点一下就出现相同的答案,这点要修复下啊
项目中使用到了theme机制,css和js存放在themes下的assets中.然后发布到web目录下,都是靠注入,现在问题是每个页面使用的Css和Js不一样.不确定要怎么去分别加载外部文件
在视图文件中:
“<?php
use app\modules\member\components\ModuleAsset;
/ @var $this yii\web\View /
$assets = ModuleAsset::register($this);
$this->title = ”;
$this->registerCssFile($assets->baseUrl . ‘/css/cart/index.css’, [‘depends’ => [ModuleAsset::className()]]);
$this->registerJsFile($assets->baseUrl . ‘/js/cart/index.js’, [‘depends’ => [ModuleAsset::className()]]);
?>`
可以给每个 theme 设置不同的依赖,加载不同的 JS 和 CSS。写多个xxxAsset.php的配置文件,然后在页面里通过xxx Asset::register($this)可以引入不同文件
做了个修改密码的页面 想修改成功的时候提示密码修改成功 并有提示在3秒内跳转到登录页面 有经验的大神可以说说吗
YII不是TP,而且基本上不会出现等三秒的用户,即使可以点击提前跳转。
在advanced模板中,有一个 common\widgets\Alert 小物件。使用它可以给予一次性的完美提示。
你可以在用户修改密码成功之后,跳转登录页面之前:
然后在跳转的登录页面。会有如下酷炫的效果:
图片传不上去。
如果你要弹出成功提示的话,那就使用ajax提交,成功则弹出一个js框框,同时设置一个倒计时三秒的,时间到了直接调用logout.毕竟要清除session
写个中间页面,提示并延时跳转
中间页面好看些,还能点击立即跳转。
我也想知道
要想使用完美的弹出层提示效果,引入layer弹出层提示 是js插件,可以通过ajax请求 成功后弹出框提示 可以设置等待时间
健名为字段,健值为地段值。
Array
(
[0] => Array
(
[name] => 10
[content] => 100
)
[1] => Array
(
[name] => 1000
[content] => 10000
)
)
可以试试用Yii::$app->createCommand()->batchInsert($table,[‘name’,’content’],$attribute)批量插入。没保存上估计是字段名错误或者rules有问题
今天突发奇想想用一下Yii自带的对称加密,代码如下:
但是结果很费解,加密后的 $encryptedData 乱码,打印出来不是文档中所说的32位的字符串,而是乱码。
上面的 1 是解码之后的值 而下面的一长串就是乱码。乱码如下:
请大神帮忙答疑解惑!!!( > v < )
base64_encode 后保存
因某种原因
单表中 name 名称是这样写的
现在已经可以插入数据了。
但是在更新时,要单独赋值
$GoodsAttribute['name'][13]['id']='20000';
请问,这样的格式为什么赋值不成功呢?
你这model后面跟那一串没见过,可以load以后直接$model->id=’2000′;然后再保存