mvc - 学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ? 哪里设置的?
本文介绍了mvc - 学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ? 哪里设置的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ?
外部调用的function :
namespace Home\Controller;
use Think\Controller;
public function model_D()
{
$stmt=D('shop');
$stmt->say();
}
俩类文件:
被调用的是这个:
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>()';
}
}
为什么不是这个?
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>';
}
}
解决方案
用D方法,并不会按命名空间指定的路径去找class。
D方法是按优先级加载最先找到的Class,而且顺序就是从comon开始。
有两个方法解决你的问题。
$model = D("Home/Shop");
使用命令空间
use Home\Model\shopModel;
$model = new shopModel();
这篇关于mvc - 学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ? 哪里设置的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文