fly020212

fly020212

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

  • 财富值342
  • 威望值100
  • 总积分1582

个人信息

  • 抱歉,最近看的 Yii2,没看仔细就写了,Yii1 有几个月没用了,忘记了

  • 首先,要明白 vendor 目录的含义,这个目录基本是放第三方类库的,yii 框架放在这里,你使用的 github 上的类库通过 composer 安装的也放在这里,但,你的产品代码,是不需要放在这里的,也不应该放在这里

    第二,虽然,我们的代码用了 namespace app\XXX\XXX 定义 namespace,但是,这个 app 目录对应的就是 'basePath' => dirname(__DIR__), 目录,namespace app\vendor\class 对应的是 basePath/vendor/class 目录,当然,不应该放在 vendor 目录下
    举个例子
    namespace app\models 是目录 basePath/models

    <?php
    namespace app\models;
    class User {};
    

    这个 User 的 类名,是 \app\models\User, 文件是 basePath/models/User.php

    最后,以上的前提是,你对 php 的 namespace 有大概的了解

  • 自己写个 composer.json,require yii2,update ,按照 yii basic 的模板,创建目录,把 web/index.php 拷过来,运行,调试

  • Yii2 有 import ?

  • 回复了 的回答

    本来考虑用 ReflectionClass 自己写权限获取方法和方法注释的 不过YII2 里面 用ReflectionClass 报错啊
    $func = new ReflectionMethod('AdminController','actionIndex');

        $tmp   = $func->getDocComment();
        var_dump($tmp);
    

    报下面的错误啊
    Class 'backend\controllers\ReflectionMethod' not found

    $func = new \ReflectionMethod('AdminController','actionIndex');

  • 每次更新的时候加上 --prefer-dist 应该情况会好点

    http://wenda.golaravel.com/question/18 这里有 composer 的国内镜像,不清楚好用不,没试过

  • 悲催呀,刚写好的,预览状态下,一个回退键,就没有了 。。。

    重写一遍了

    ActiveRecord 的 $attributes 属性是私有的,是不能被 json_encode 编码的,所以 encode 后是 {} 不奇怪

    你使用了namespace,所以如果你 $obj = new stdClass,找的是你 namespace 下的 stdClass 类,这个应该肯定是不存在的,应该用 $obj = new \stdClass 就ok了,顺便提一句,如果用到了 Exception, 也是要特别注意的 try { ... } catch (\Exception $e) {...} ,这个样子才能像预料中的那样工作

    yii\helpers\Json 是可以 encode models 数据的,对这些数据有特殊的处理,可以参看源代码

    \yii\helpers\Json::encode(Model::findAll());
    

    这样子就ok了

经理 等级规则
1582/2000
资料完整度
10/100
用户活跃度
0/100

Ta的关注

1

Ta的粉丝

8

Ta的访客

25