学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ? 哪里设置的?

学 thinkPHP 用 D方法,为什么调用 Common/Model 不是 Home/Model ?

外部调用的function :

namespace HomeController;
use ThinkController; public function model_D
{ $stmt=Dshop; $stmt->say;
}

俩类文件:

被调用的是这个:
C:AppServwwwyb1yangbinsCommonModelshopModel.class.php
<?php
namespace CommonModel;
use ThinkModel; class shopModel extends Model
{ function say { echo i am in namespace CommonModel <br>; }
}
为什么不是这个?
C:AppServwwwyb1yangbinsHomeModelshopModel.class.php
<?php
namespace HomeModel;
use ThinkModel; class shopModel extends Model
{ function say { echo i am in namespace HomeModel <br>; }
}

用D方法,并不会按命名空间指定的路径去找class。
D方法是按优先级加载最先找到的Class,而且顺序就是从comon开始。

有两个方法解决你的问题。

$model = D"Home/Shop";

使用命令空间

use HomeModelshopModel;
$model = new shopModel;

外部调用不应该指定 use HomeModelshop

发表评论

电子邮件地址不会被公开。 必填项已用*标注