Rumah >pembangunan bahagian belakang >tutorial php >mvc - 学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ? 哪里设置的?
学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ?
外部调用的function :
<code>namespace Home\Controller; use Think\Controller; public function model_D() { $stmt=D('shop'); $stmt->say(); }</code>
俩类文件:
<code>被调用的是这个: C:\AppServ\www\yb1\yangbins\Common\Model\shopModel.class.php <?php namespace Common\Model; use Think\Model; class shopModel extends Model { function say() { echo 'i am in namespace Common\Model <br>()'; } } </code>
<code>为什么不是这个? C:\AppServ\www\yb1\yangbins\Home\Model\shopModel.class.php <?php namespace Home\Model; use Think\Model; class shopModel extends Model { function say() { echo 'i am in namespace Home\Model <br>'; } }</code>
学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ?
外部调用的function :
<code>namespace Home\Controller; use Think\Controller; public function model_D() { $stmt=D('shop'); $stmt->say(); }</code>
俩类文件:
<code>被调用的是这个: C:\AppServ\www\yb1\yangbins\Common\Model\shopModel.class.php <?php namespace Common\Model; use Think\Model; class shopModel extends Model { function say() { echo 'i am in namespace Common\Model <br>()'; } } </code>
<code>为什么不是这个? C:\AppServ\www\yb1\yangbins\Home\Model\shopModel.class.php <?php namespace Home\Model; use Think\Model; class shopModel extends Model { function say() { echo 'i am in namespace Home\Model <br>'; } }</code>
用D方法,并不会按命名空间指定的路径去找class。
D方法是按优先级加载最先找到的Class,而且顺序就是从comon开始。
有两个方法解决你的问题。
<code>$model = D("Home/Shop");</code>
使用命令空间
<code>use Home\Model\shopModel; $model = new shopModel();</code>
外部调用不应该指定 use Home\Model\shop
吗