谁一开始就是大神?

PHP 第37页

PHP

checkboxList设置样式[2.0]

Newdolphin阅读(90)

yii2中的checkboxList为每一个checkbox设置样式怎么弄的,有大神知道吗,搞了好久好搞成功

你不得不佩服我,我终于找到终极解决方案了。
不知道啊,我最近也遇到checkbox的问题了,所以过来混个积分
之前写过一篇文章,可以看一下
http://yiilib.com/topic/729/Yii2 中 checkbox list 中的项进行格式化
很不理解,为什么要给每个checkbox设置样式?
<?= $form->field($model, 'sex')->checkboxList([0=>'男',1=>'女',2=>'保密'],['value'=>0,'itemOptions'=>['class'=>'myClass']]); ?>
主要就是设置一个 itemOptions 就可以在input里面增加属性了。 如果为每一个input设置不同的属性目前还不好办到。
你解决了我好几天的苦恼 特别感谢

自义rules验证提示[2.0]

likelyEagle阅读(88)

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)
{
}

关于如何将all()求出的对象转换为数组[2.0]

Aibylemon阅读(93)

使用$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插入二条数据?[2.0]

dmlovely阅读(90)

如题:如何用model插入二条数据? 我发现如果不new 二次model 是做不到的。这是orm的特性?
今天项目中,$this->save() 在一次操作中调用了四次。但发现不管如何,都只有一条入库。

第一种方法
第二种方法
这是orm的特性
同意楼上,也可以两条数据拼成一条sql语句,然后执行
类似于如下:
建议批量插入好点,如:

数据提供者数据统计[2.0]

CleverCherry阅读(97)

能否实现对 数据提供者某字段进行求和统计,是全部的,不是分页的

可以 $data=clone $dataProvider 然后 $data->pagination = false; 再$data->models 你就可以浪了。
期待更好的答案。。
用fields应该可以
这个方法好用~~

关于框架源码内的yii2\helpers\BaseArrayHelper的一处疑问[2.0]

Harrylemon阅读(92)

下面这个方法判断元素($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 时,用===, 三等号是不做类型转换的

rbac配置后报错,命令行创建rbac数据库表时无法创建[2.0]

Neodolphin阅读(89)

B_WRMKTPC$SIAYI82%4C$6.png
在common/config/main.php配置DbManager,进入后台时后报错,下图所示OV8HB~A@@B{[_418N7HWS]L.png

然后在命令行创建RBAC的数据表时,也是这样的错误,搞不清楚要怎么修改
5RLF3[7EIBG9MJAQO3U]DAQ.png

authManager的位置配置错了,外层的数组去掉,像下面这样
先加了配置,然后再去建的表?
建议,先建表,再去配置。
另外,如果你是配置的全局参数,似乎这个命令行界面也是受权限控制管理的。
之前踩过这个坑,命令行的总报错,没找到方法解决,我就给前端后端单独配置了权限管理。

PHP如何获取网站cookie?(不是你想的那样)[2.0]

Leoelephant阅读(87)

我正常通过浏览器访问百度首页,然后F12查看cookie,会得到以下cookie数据。
QQ截图20170113153251.png
那如果我用PHP直接去访问百度首页,我怎样才能获取到这个cookie呢?

这看你要用什么方式了,如果使用的是curl,有对应的参数设置就可以获取 curl_setopt($curl, CURLOPT_COOKIE, $cookie);

dataProvider分页[2.0]

NiceCherry阅读(82)

dataProvider = new ActiveDataProvider([

			'query' => $data,
			'pagination' => [
				'pageSize' => 10,
			],
		]);

这个query=>可以是数组嘛,如果是数组格式的话,怎么用dataProvider 分页

searchmodel配置呀
根据ActiveDataProvider中可以知道:
说明$query数据是model
把数组转成model了,有点好奇,数组为什么要分布呢,只为了方便浏览吗?
差不多吧。

请教yii2配置文件的一些问题[2.0]

Swiftqueen阅读(82)

  1. environments dev frontend main-local.php 新增配置 db1 => [ ‘host’ => 172.16.0.100]
  2. 开发人员更新项目 ./init
  3. 修改 frontend config main-local.php db1 => [ ‘host’ => 192.168.1.200]
  4. 项目新增配置 environments dev frontend main-local.php 新增配置 db2 => [ ‘host’ => 172.16.0.101]
  5. 开发人员更新项目 ./init frontend config main-local.php 提示需要覆盖,
  6. 之前的修改db1 被覆盖了 又得去把db1 改成本地了

疑问 , 这个流程本身是这样 还是我的错了 如果业务需求频繁, 这个有点蛋疼呀, 而且是必须配置的

init 是用以初始化项目确定项目是处于生产还是开发环境的。并不是你说的用以更新项目的。也就是说,在你电脑爆炸前,你基本上只会用到一次 init。
如果你需要新增 db2,则只需要将 db2 写入main.php,那么别人拉取代码的时候就会获得你的 db2 。并且即使执行 init ,也不会影响到你的 main.php。
不能通过.json把main-local.php忽略掉么?
可以模仿laravel配置做法,就可以解决这种问题
加db2时把db1删除了?

登录

找回密码

注册