谁一开始就是大神?

PHP 第36页

PHP

yii2apidoc那些类似“公共属性”是怎么翻译过来的(红框里的中文)[2.0]

Gracelovely阅读(106)

像官网上的文档应该是通过apidoc生成的吧,那些公共属性是怎么翻译过来的?

WechatIMG44.jpeg

我生成的是英文的 看下红框里的
1.jpg

简单定义一套中文的模板就好
https://github.com/yiisoft/yii2-apidoc
去这里看看吧
基于 PSR-5,即phdoc规范,phpdocumentor 诞生了,他是一套 API 文档生成器。而yii2-apidoc正是基于 phpdocumentor 并且自定义了其额外语法。所以楼主想了解 yii2-apidoc,必须先了解 phpdocumentor
看中文版的,
有配置的吧,
这个可以在模版中修改,如果不想直接修改也可以使用I18N进行配置

动态数据库连接[2.0]

JadeKeo阅读(97)

请教各位大神 怎么动态去连接数据库呢
小弟现在做数据库分库 每个库里面的表是一样的 需要先访问到控制器 然后再判断具体连接哪个库
怎么在控制器里设置数据库连接呢 设置完在models里面的数据库操作都可以使用呢

在controller的beforeAction里面,重新设置db组件呗。
其中的$dbHost, $dbName, $dbUser, $dbPassword都是可以动态指定的。

怎样暂时不使用yii的错误管理?[2.0]

Wendycrab阅读(96)

无标题.png
如图,我想忽略这个错误,但是yii框架拦截了这个错误,该怎样做才能执行catch块中的代码?

你把catch的参数Exception $e改成\Exception $e试试,会有奇效哦。
这就是因为你没有捕捉到这个exception,就被更上层的yii捕捉到了。
如果你想让出错以后还go on的话,就用finally。
如果你是想捕捉错误的话,就用楼上的办法改。

saveattributes['id']方法获取不到id号[2.0]

fationnice阅读(94)

$userOpenId = new UserOpenId([
    'openid'=>(string)$openId,
    'opentype'=>$openType,
    'userName'=>$userName
]);
if($userOpenId->save()){
    $id = $userOpenId->attributes['id'];var_dump($id);exit;
}

public function rules()
{
    return [
        [['id'], 'integer'],
        [['userId'], 'integer'],
        [['opentype'], 'string', 'max' => 60],
        [['userName'], 'string', 'max' => 60],
        [['openhash'], 'string', 'max' => 32],
        [['openid'], 'string', 'max' => 255],
        [['opentype', 'openhash'], 'unique', 'targetAttribute' => ['opentype', 'openhash'], 'message' => 'The combination of Opentype and Openhash has already been taken.'],
    ];
}

id 在数据库里有没有设置为自动递增

$model->save()用此方法新建,更新数据都失败,打印错误是array();[2.0]

ACGbubble阅读(91)

public function actionUpdate($id)
{
    $model = $this->findModel($id);

    if ($model->load(Yii::$app->request->post()) && $model->save()) {
        return $this->redirect(['view', 'id' => $model->id]);
    } else {
        // print_r($model->getErrors());
        // exit;
        return $this->render('update', [
            'model' => $model,
        ]);
    }
}

数据库的读取没有问题。就是新建,更新不行。$model->load(Yii::$app->request->post()) 这个条件没毛病。用navicate可以手动更改数据库。我这个博客就是魏曦老师的blogdemo2他在视频里就没有报错,不知道大家有没有听过他的视频。

$model->load(Yii::$app->request->post())
这里没有成功载入
save 之前打印下 $model 看$model->id有没有值,没值的话,save肯定是新建啊

地正常运行的项目,git到服务器上出现403[2.0]

loveseagull阅读(95)

本地做了一个项目,可以正常运行,直接拷贝到服务器上也可以正常运行,但是用git上传到服务器的话会出现403(前提是我已经给了777权限,allowip我也设置了),这种情况应该怎么破?

这跟git有关系?
git只是帮你把文件搬运到服务器上去。
估计你不是所有的配置都纳入git管理了,或者说你把本地的配置通过git传上服务器了。
vendor 少了这个composer一下就可把这个文件给拉下来

安装mongodb一直安装不成功[2.0]

richfrog阅读(93)

`Problem 1

- yiisoft/yii2-mongodb 2.1.2 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
- yiisoft/yii2-mongodb 2.1.1 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
- yiisoft/yii2-mongodb 2.1.0 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
- Installation request for yiisoft/yii2-mongodb ~2.1.0 -> satisfiable by yiisoft/yii2-mongodb[2.1.0, 2.1.1, 2.1.2].

To enable extensions, verify that they are enabled in those .ini files:

- /etc/php/7.0/cli/php.ini
- /etc/php/7.0/cli/conf.d/10-opcache.ini
- /etc/php/7.0/cli/conf.d/10-pdo.ini
- /etc/php/7.0/cli/conf.d/15-xml.ini
- /etc/php/7.0/cli/conf.d/20-calendar.ini
- /etc/php/7.0/cli/conf.d/20-ctype.ini
- /etc/php/7.0/cli/conf.d/20-curl.ini
- /etc/php/7.0/cli/conf.d/20-dom.ini
- /etc/php/7.0/cli/conf.d/20-exif.ini
- /etc/php/7.0/cli/conf.d/20-fileinfo.ini
- /etc/php/7.0/cli/conf.d/20-ftp.ini
- /etc/php/7.0/cli/conf.d/20-gettext.ini
- /etc/php/7.0/cli/conf.d/20-iconv.ini
- /etc/php/7.0/cli/conf.d/20-json.ini
- /etc/php/7.0/cli/conf.d/20-mbstring.ini
- /etc/php/7.0/cli/conf.d/20-phar.ini
- /etc/php/7.0/cli/conf.d/20-posix.ini
- /etc/php/7.0/cli/conf.d/20-readline.ini
- /etc/php/7.0/cli/conf.d/20-shmop.ini
- /etc/php/7.0/cli/conf.d/20-simplexml.ini
- /etc/php/7.0/cli/conf.d/20-sockets.ini
- /etc/php/7.0/cli/conf.d/20-sysvmsg.ini
- /etc/php/7.0/cli/conf.d/20-sysvsem.ini
- /etc/php/7.0/cli/conf.d/20-sysvshm.ini
- /etc/php/7.0/cli/conf.d/20-tokenizer.ini
- /etc/php/7.0/cli/conf.d/20-wddx.ini
- /etc/php/7.0/cli/conf.d/20-xmlreader.ini
- /etc/php/7.0/cli/conf.d/20-xmlwriter.ini
- /etc/php/7.0/cli/conf.d/20-xsl.ini

You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.`
使用的是php 7.0.7,请教大神指点

找到问题了,你安装的是mongo的扩展,没有安装mongodb扩展,安装方式如下:
骚年你mongo扩展版本太低,用pecl重新装个最新的mongodb扩展
不是扩展版本问题,1.2.2的mongodb扩展已经是最新的了
问题解决了吗?

导出数据时,条数太多导致导不出来,有什么好的解决办法吗?[2.0]

Hazelsuper阅读(94)

 //导出中奖数据
    public function actionExport() {
        $join = KynhJoin::find()->orderBy('chip_num desc,id asc')->all();
        $data = Gic::convert('昵称,姓名,电话,年画数,代言积分,奖品') . PHP_EOL; //编码转换
        foreach ($join as $k => $v) {
            $prize = '';
            if ($v->pid > 0) {
                $prize = $v->prize->name;
            }
            $line = preg_replace("/[\n\r,\"\,]+/", " ", $v->user->nickname) . ',' . $v->name . ',' . $v->tel . ',' . $v->chip_num . ',' . $v->integral . ',' . $prize . PHP_EOL;
            $line = Gic::convert($line);
            $data .= $line;
        }
        Gic::getCsv('kynh.csv', $data); //输出CSV文件
    }

储存时用了序列化存储的方式,结果数据太多就导不出了?每次都是分开导出(没5000条导出一次),很不方便,各位请说明一下原因和比较优雅的解决方案?

可以通过console生成一个csv文件,需要的时候下载就是,算是一个异步思路吧。
5000量不大呀,你先确定你的导出能正常工作。
试下一次 500 或者 50
生成文件,然后一行一行的写入

checkboxList设置样式[2.0]

Newdolphin阅读(99)

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阅读(96)

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

登录

找回密码

注册