谁一开始就是大神?

PHP 第27页

PHP

日志系统的查询?[2.0]

CleverJames阅读(58)

各位大牛,大神,做个日志系统,想根据日期查询数据库里的表,数据库每天都会生成一个日志表,请教下如何查询表数据

假设你的日志模型类是MyLog
坐等大神,学习看看
查询条件加上日期等于某一天,不就行了?
这种情况直接DAO 不就好了,或者做成 动态Model , log_201701xx 这种

model里面的hasOne该怎么缓存?[2.0]

Noblelovely阅读(57)

请问 model里面的 hasOne 该怎么缓存?

可以用缓存,类似下面方法:
记得取出来了要塞到缓存里,这样下次才有缓存
relation 不是直接系统默认缓存的吗? 我记得是只访问数据库一次,之后就缓存了的。
可以看看Yii2缓存文档,里面有专门针对SQL的缓存,用到你这个应该是可以的

Yii2的Captcha使用Ajax进行验证出错[2.0]

Tinadear阅读(60)

D:\phpwork\news\controllers\SiteController.php

   public function actionRegister()
    {
        $model = new RegisterForm();
        if ($model->load(Yii::$app->request->post())) {
           if (Yii::$app->request->isAjax) {
                Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                $result=\yii\widgets\ActiveForm::validate($model);
                return $result;
            }
            if($model->validate()){
                $error=$model->save();
                if($error) {
                    return $this->errorDisplay($error);
                }else{
                    Yii::$app->session->setFlash('success');
                    return $this->refresh();
                }
            }else{
                return $this->errorDisplay($model->getErrors());
            }
        }else{
            return $this->render('register', [
                'model' => $model,
            ]);
        }
    }

D:\phpwork\news\models\RegisterForm.php

            ['verifyCode', 'captcha', 'captchaAction'=>'site/captcha'],

报错信息:

The verification code is incorrect.

个人感觉是下面这段Ajax验证代码运行后,verifyCode就被自动刷新了:

           if (Yii::$app->request->isAjax) {
                Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
                $result=\yii\widgets\ActiveForm::validate($model);
                return $result;
            }

请问大神们是怎么解决的这个问题?谢谢

` use yii\captcha\CaptchaAction;
[‘verifyCode’, ‘captcha’,’message’=>’验证码不正确’],
而不是这么写的
[‘verifyCode’, ‘captcha’, ‘captchaAction’=>’site/captcha’],
我将rules的规则
[ 'coder','captcha', 'captchaAction'=>'coder/captcha','message'=>"{attribute}错误"]
给删除了,已经用ajax验证,就不进行再次验证了,直接提交表单的时候就可以通过了。

phpexcel表的使用方式[2.0]

HaHhappy阅读(49)

通过composer 命令:composer require “phpoffice/phpexcel” 已经把phpexcel引入了,目录如下:
QQ图片20170428120202.png

现在问题是我在控制器中 new PHPexcel()时 会报 ‘PHPExcel’ not found 。 问: 我该如何才能use它?


use PHPExcel;
use PHPExcel_IOFactory;

先use进来。。才可以new。。。先找到女朋友,你才能 想干的事情
new \PHPexcel()
用composer装,自动载入是composer帮你实现的,使用的时候直接new,记得加上反斜杠
或者先导入也行

beforeAction返回false的问题

CandyLion阅读(58)

项目里批量删除时action没有运行,单个删除就没问题,看代码是controller类里的beforeAction函数返回false导致没有继续运行,找下去发现是isValid的属性被改变,但我找不到在哪里改变的,为什么会这样

isValid是yii\base\ActionEvent里面的一个属性,用来控action是否继续执行的,如果这个isValid为false,则不往下执行,
一般问题出在,behaviors这个方法里面,所以好好检查你的behaviors方法里面的验证,isValid的一般会在这个方法里面赋值;
源码参考:yii\base\ActionFilter(一般controller里面的behaviors类会继承这个类,并且实现beforeAction(),这个方法,由源码可以知道,当具体某个behaviors类的beforeAction()返回值为false的话,那么isValid会被赋值false,那么action就不会执行)
总结一下,就是查看behaviors里面的每个类的beforeAction方法,看看哪个类的这个方法返回值为false,那么就是问题的所在
循环调用了吧?估计是被浏览器停止掉了

有关andwhere绑参数的问题,请高人点[2.0]

CindyKeo阅读(59)

$query_ol = Orderlist::find()->where([

                                'status' => Orderlist::STATUS_ACTIVE,
                                'phone' => \Yii::$app->user->identity->username,
                                ]);
    $query_ol->andWhere(['<', 'addtime', time()]);
    $query_ol->andWhere(['>=', 'addtime', ':addtime1']); 
    if($query_ol->andWhere([':addtime1'=>strtotime("-1 month")])->count()>=4){
           echo 'hello';
    }

报错提示如下:
Database Exception – yii\db\Exception

SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
The SQL being executed was: SELECT COUNT(*) FROM so_orderlist WHERE (((status=’1′) AND (phone=’18663697137′)) AND (addtime < 1493111483)) AND (addtime >= ‘:addtime1’)
Error Info: Array
(

[0] => HY093
[1] => 0

)

你打印过最后执行的sql吗 看看是否你那个占位符到底是否好用了
多加一句,我记得andwhere是可以加params, 可以用下面2种方法,简化一行代码。
$query_ol->andWhere(‘addtime>=:addtime1’, [‘:addtime1’=>strtotime(“-1 month”)]);
$query_ol->andWhere([‘>=’, ‘addtime’, strtotime(“-1 month”)]);

如何在gridview中加入daterangepicker,并实现搜索[2.0]

coolCherry阅读(58)

在gridview里面,我自己加入了daterangepicker,每一次点击apply的时候,都能把时间放入input里面,但是,搜索却失败。。。

你是要搜索吗?
我是这样做的。不知道你是不是要这个!
<?=$this->render(‘_search’, [‘model’ => $searchModel]); ?> 这是(index.php)
(_search.php)
<?php $form = ActiveForm::begin([‘action’ => [‘index’],’method’ => ‘get’,]); ?>
<?= $form->field($model, ‘type_id’)->dropDownList(ArrayHelper::map($data,’id’, ‘type_name’),[‘style’ => ‘display:inline-block;’,’prompt’=>’请选择活动类别…’])->label(false) ?>

独立功能类放在哪个文件夹?用户操作后会触发事件吗?[2.0]

LeoFox阅读(58)

场景:
  游戏项目,用户进行任何操作,都会触发一个“更新”(包含了最后操作时间、资源、进程等)。

  1. 准备写一个独立功能类:Update,这个类里面处理所有的Update任务,这个类应该放在哪个文件夹?
  2. 有没有触发器 / 事件之类的?在用户进行操作后,自动执行Update,目测可以省几十行重复代码。

写一个公共的Controller类,你所用到的所有Controller都继承他,然后在这个类的beforeAction里面调用你自定义的Update方法

登录

找回密码

注册