500miles

500miles

这家伙有点懒,还没写个性签名!

  • 财富值2470
  • 威望值220
  • 总积分4940

个人信息

  • 回复了 的回答

    根据你错误信息来看 上传文件过大了,

    检查一下 服务器php配置参数upload_max_filesize

  • 根据你错误信息来看 上传文件过大了,

    检查一下 服务器php配置参数upload_max_filesize

  • composer的问题

    如果需求很强烈, 又愿意折腾, 就自己搭一个composer镜像, 自己公司也方便管理内部包了

    要不就用国内开源的composer镜像

    或者 composer指定私有包.

    再就是梯子了

  • 关于两个cookie collection的机制.

    request cookie是本次请求中, 请求方发送来的cookie信息;

    response cookie是本次请求中, 你要响应给请求方的cookie信息;

    因此, 正常情况下的一次请求中, 你成功响应cookie后, 下次请求才能拿到上次写入的cookie;

    var_dump(Yii::$app->request->cookies);exit; 自然拿不到本次请求中刚刚加入的cookie了;

  • 目测是少了 intl 这个扩展

  • 1、最直接的办法 :

    fields()中的匿名函数内, 使用下面语句即可获取

    class Test extends ActiveRecord {
    
        public function fields(){
            $fields = parent::fields();
            $fields['newFields'] = function($model){
                // 这里使用
                Yii::$app->controller->actionParams["coordinates"];
            } 
        }
    }
    
    

    当然 这种方法有一定局限性, 如果要使用的数据不属于actoinParams怎么办呢?

    当然你可以给对应的controller加属性来解决...

    但总感觉有点奇技淫巧的feel. 不合套路

    2、你可以给对应的模型 加上静态属性

    class Test extends ActiveRecord {
    
        public static $coordinates; //加上静态属性, 在控制器进行赋值
    
        public function fields(){
            $fields = parent::fields();
            $fields['newFields'] = function($model){
                // 这里使用
                $model::$coordinates ......
            } 
        }
    }
    
    
  • 因为引入进来了呀.

    举个栗子(框架内不是这样的, 但本质相同):

    // yii.php
    <?php
    class Yii {
        public static $app;
        
        ......
    }
    
    // demo.php
    <?php
    require "yii.php";
    
    Yii::$app->......
    
    
  • "SELECT * FROM A t join B b on t.c = b.c where d < 10 order by e desc"

    这一条sql 你知道如何用AR实现吧?
    你那条和这一条是等价的.

  • 不是的

    只是一个类, 并且在入口文件加载进来而已. 大致是这样 :

    class Yii {
        public static $app;
        
        ......
    }
    
  • 回复了 的回答

    先说解决办法, 改成下面的形式 :

    $query = Equip::find()->andFilterWhere(['is_delete' => 0]);
    或者
    $query = Equip::find()->andFilterWhere(['and', ['is_delete' => 0]]);
    

    接下来分析 为什么会出现这么有趣的现象

    is_delete = 1 可以达到预期, 不加这个条件也可以达到预期, 偏偏 is_delete = 0 有问题

    原因是按照你写的那样, 最终生成的sql会是 :

    select * from table where is_delete and 0 (或者1);

    有意思的是, select * from table where fieldName 这样的语句并不会报错.

    我试了下, fieldName 为空, 为null, 为0的时候, 查不到.

    其他时候均能查到, 但是此种情况下, 不会用到索引.

    上面说的是针对mysql , 刚又试了下pgsql, 这种语法直接抛错 , 你用的是mysql吧?

总监 等级规则
4940/5000
资料完整度
30/100
用户活跃度
0/100

Ta的关注

0

Ta的粉丝

15

Ta的访客

42