belial
- belial 2015-08-07 已签到连续签到2天,获得了10个金钱
- belial 回复了 sevenyearsold 的回答
使用反射就可以实现你的想要的功能。首先新建一个
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, 有另一个没头绪的问题, 如果方便的时候请指点下
强烈不建议这样处理....
第一 用controller Id 来指向对应的 Model 很不可靠..非常不可靠
你Model名是 BlackListController ---> id : black-list 很显然 这是不行的
另外 你在 urlRules 或者 controllerMap 做配置 也会影响到相对应的 controller Id
第二 即便可以正确指向相对应的 Model 名称 你还必须有对应的 namespace, 才能 createObject
并且这样也很不灵活, 不如放在各自控制器,
谢谢, 可能方法不是最好的, 但是能了解其他的实现方式,也算是种积累啊
- belial 提出了问题yii2怎么设置动态model
- belial 2015-08-06 已签到连续签到1天,获得了5个金钱
- belial 2015-08-03 已签到连续签到1天,获得了5个金钱
- belial 发表了说说连不上mysql了, 看了下suse的软件源 没有pdo——mysql这东西, 只有pdo