当手机端添加一条数据到数据库中,php可以实现告知PC端(如果PC端页面一直处于打开的状态),
推荐用workerman
可以啊,复杂点就是通过socket推送,简单点就用js轮询
可以用swoole的webSocket实现
swoole,workman都可以
简单一点,不要求效率的话就用ajax轮询
当手机端添加一条数据到数据库中,php可以实现告知PC端(如果PC端页面一直处于打开的状态),
推荐用workerman
可以啊,复杂点就是通过socket推送,简单点就用js轮询
可以用swoole的webSocket实现
swoole,workman都可以
简单一点,不要求效率的话就用ajax轮询
请教各位大神 怎么动态去连接数据库呢
小弟现在做数据库分库 每个库里面的表是一样的 需要先访问到控制器 然后再判断具体连接哪个库
怎么在控制器里设置数据库连接呢 设置完在models里面的数据库操作都可以使用呢
在controller的beforeAction里面,重新设置db组件呗。
其中的$dbHost, $dbName, $dbUser, $dbPassword都是可以动态指定的。
如图,我想忽略这个错误,但是yii框架拦截了这个错误,该怎样做才能执行catch块中的代码?
你把catch的参数Exception $e
改成\Exception $e
试试,会有奇效哦。
这就是因为你没有捕捉到这个exception,就被更上层的yii捕捉到了。
如果你想让出错以后还go on的话,就用finally。
如果你是想捕捉错误的话,就用楼上的办法改。
public function validateRecipient()
{
if(!$this->hasErrors()){
$data=Member::find()->where(['username'=>$this->recipient])->one();
if(is_null($data)){
$this->addError('recipient','没有该收件人,请重新确认');
}
}
}
为什么这句话它错误之后没有提示..要是输入错误的信息它不会走到后面的save(),但是就是没有提示.应该要怎么弄才可以在form表单提示错误信息?
关键是这句,如果验证错误,那么会把信息报给
所以,要想form有提示,你得保证你表单中有这个字段。
debug调试一下这段代码
有两种解决方法:
1、用验证规则验证
在模型的验证规则中加入 [‘recipient’, ‘exist’, ‘message’ => ‘没有该收件人,请重新确认’],
2、使用的自定义验证规则
[‘recipient’, ‘validateRecipient’],
public function validateRecipient($attribute, $params)
{
}
使用$this->find()->with(‘category’)->all();
求出的数据中包括category数据,这个数据是一个对象,当使用return的时候 category数据就消失了
求问如何让category显示出来
[0] => apiend\models\Document Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 1
[uid] => 1
[name] =>
[title] => 新技能get√ QQ红包恶搞与测试:一个没有口令的口令红包
[category_id] => 41
[description] => 今天老D来给大家分享一个QQ红包恶搞手法,给Q 里或者好友发一个没有口令的口令红包,但是他们却领取不了。一般QQ口令红包你点击红包它会自动在信息输入框输入口令,但是这个我们把口令弄成“空白”,然后他们就只能眼巴巴的看着红包了,然后你成功拉取仇恨了~~~
[root] => 0
[pid] => 0
[model_id] => 0
[type] => 0
[position] => 1
[link_id] => 0
[cover_id] => 15
[display] => 10
[deadline] => 0
[attach] => 0
[view] => 0
[comment] => 0
[extend] => 0
[level] => 0
[create_time] => 1482384769
[update_time] => 1482384769
[status] => 10
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 1
[uid] => 1
[name] =>
[title] => 新技能get√ QQ红包恶搞与测试:一个没有口令的口令红包
[category_id] => 41
[description] => 今天老D来给大家分享一个QQ红包恶搞手法,给Q 里或者好友发一个没有口令的口令红包,但是他们却领取不了。一般QQ口令红包你点击红包它会自动在信息输入框输入口令,但是这个我们把口令弄成“空白”,然后他们就只能眼巴巴的看着红包了,然后你成功拉取仇恨了~~~
[root] => 0
[pid] => 0
[model_id] => 0
[type] => 0
[position] => 1
[link_id] => 0
[cover_id] => 15
[display] => 10
[deadline] => 0
[attach] => 0
[view] => 0
[comment] => 0
[extend] => 0
[level] => 0
[create_time] => 1482384769
[update_time] => 1482384769
[status] => 10
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
[category] => apiend\models\Category Object
(
[_attributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 41
[name] => black
[title] => 黑科技
[pid] => 0
[sort] => 0
[list_row] => 10
[meta_title] =>
[keywords] =>
[description] =>
[model] =>
[type] =>
[link_id] => 0
[allow_publish] => 0
[display] => 0
[reply] => 0
[check] => 0
[reply_model] =>
[extend] => 傻子
[create_time] => 1482384472
[update_time] => 1482384472
[status] => 0
[icon] => 0
)
[_oldAttributes:yii\db\BaseActiveRecord:private] => Array
(
[id] => 41
[name] => black
[title] => 黑科技
[pid] => 0
[sort] => 0
[list_row] => 10
[meta_title] =>
[keywords] =>
[description] =>
[model] =>
[type] =>
[link_id] => 0
[allow_publish] => 0
[display] => 0
[reply] => 0
[check] => 0
[reply_model] =>
[extend] => 傻子
[create_time] => 1482384472
[update_time] => 1482384472
[status] => 0
[icon] => 0
)
[_related:yii\db\BaseActiveRecord:private] => Array
(
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
)
[_errors:yii\base\Model:private] =>
[_validators:yii\base\Model:private] =>
[_scenario:yii\base\Model:private] => default
[_events:yii\base\Component:private] => Array
(
)
[_behaviors:yii\base\Component:private] => Array
(
)
)
[
{
"id": "2",
"uid": "1",
"title": "test",
"category_id": "41",
"description": "test",
"root": "0",
"pid": "0",
"model_id": 0,
"type": 0,
"position": 1,
"link_id": "0",
"cover_id": "16",
"display": 10,
"deadline": "0",
"attach": 0,
"view": "0",
"comment": "0",
"extend": "0",
"level": 0,
"create_time": "1482385024",
"update_time": "1482385024",
"status": 10
}
],
Modlename::find()->where([])->asarray()->all();asArray()->all()
->toArray()
asArray()
取数据是 加上 ->asArray();
https://jingyan.baidu.com/article/75ab0bcb98991dd6864db2aa.html
如题:如何用model插入二条数据? 我发现如果不new 二次model 是做不到的。这是orm的特性?
今天项目中,$this->save() 在一次操作中调用了四次。但发现不管如何,都只有一条入库。
第一种方法
第二种方法
这是orm的特性
同意楼上,也可以两条数据拼成一条sql语句,然后执行
类似于如下:
建议批量插入好点,如:
能否实现对 数据提供者某字段进行求和统计,是全部的,不是分页的
可以 $data=clone $dataProvider 然后 $data->pagination = false; 再$data->models 你就可以浪了。
期待更好的答案。。
用fields应该可以
@474352380 这个方法好用~~
下面这个方法判断元素($needle)是否在数组($haystack)内的
$haystack不单指数组,如果可以用foreach进行遍历也是可以的
public static function isIn($needle, $haystack, $strict = false)
{
if ($haystack instanceof \Traversable) { // 如果$haystack可以用foreach遍历
foreach ($haystack as $value) {
if ($needle == $value && (!$strict || $needle === $haystack)) {
return true;
}
}
} elseif (is_array($haystack)) {
return in_array($needle, $haystack, $strict);
} else {
throw new InvalidParamException('Argument $haystack must be an array or implement Traversable');
}
return false;
}
第五行
if ($needle == $value && (!$strict || $needle === $haystack)) {
为什么是 $needle === $haystack ,而不是 $needle === $value;
$strict 为 TRUE 时指的不是元素值相等并且类型相同吗?关原数组什么事呢?很疑惑,望大神普及一下这个知识点
我这里源文件是$value哦,你的可能版本比较老了,是一个以前bug
$haystack 不一定是数组,只是一个可遍历对象,$strict 为 TRUE 时,用===, 三等号是不做类型转换的
在common/config/main.php配置DbManager,进入后台时后报错,下图所示
然后在命令行创建RBAC的数据表时,也是这样的错误,搞不清楚要怎么修改
authManager的位置配置错了,外层的数组去掉,像下面这样
先加了配置,然后再去建的表?
建议,先建表,再去配置。
另外,如果你是配置的全局参数,似乎这个命令行界面也是受权限控制管理的。
之前踩过这个坑,命令行的总报错,没找到方法解决,我就给前端后端单独配置了权限管理。
我正常通过浏览器访问百度首页,然后F12查看cookie,会得到以下cookie数据。
那如果我用PHP直接去访问百度首页,我怎样才能获取到这个cookie呢?
这看你要用什么方式了,如果使用的是curl,有对应的参数设置就可以获取 curl_setopt($curl, CURLOPT_COOKIE, $cookie);