belial

belial

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

  • 财富值20
  • 威望值0
  • 总积分20

个人信息

  • 2015-08-07 已签到
    连续签到2天,获得了10个金钱
  • 回复了 的回答

    使用反射就可以实现你的想要的功能。首先新建一个beseController继承自Controller,然后在beseController中添加方法findModel代码如下:

    protected function findModel($id)
        {
            $ns = "\\app\\models\\".ucfirst($this->id);
            $class=new \ReflectionClass($ns);
            $instance = $class->newInstance();
            if (($model = $instance::findOne($id)) !== null) {
                return $model;
            } else {
                throw new NotFoundHttpException('The requested page does not exist.');
        }
    

    谢谢大神,我最近才刚开始用yii, 有另一个没头绪的问题, 如果方便的时候请指点下

    http://segmentfault.com/q/1010000003060735

  • 回复了 的回答

    强烈不建议这样处理....

    第一 用controller Id 来指向对应的 Model 很不可靠..非常不可靠

    你Model名是 BlackListController ---> id : black-list 很显然 这是不行的

    另外 你在 urlRules 或者 controllerMap 做配置 也会影响到相对应的 controller Id

    第二 即便可以正确指向相对应的 Model 名称 你还必须有对应的 namespace, 才能 createObject

    并且这样也很不灵活, 不如放在各自控制器,

    谢谢, 可能方法不是最好的, 但是能了解其他的实现方式,也算是种积累啊

  • 提出了问题
    yii2怎么设置动态model
  • 2015-08-06 已签到
    连续签到1天,获得了5个金钱
  • 2015-08-03 已签到
    连续签到1天,获得了5个金钱
  • 发表了说说
    连不上mysql了, 看了下suse的软件源 没有pdo——mysql这东西, 只有pdo
试用期 等级规则
20/50
资料完整度
0/100
用户活跃度
10/100

Ta的关注

0

Ta的粉丝

0

Ta的访客

4