学 thinkphp 用 d方法,为什么调用 common/model 不是 home/model ?
外部调用的function :
立即学习“PHP免费学习笔记(深入)”;
<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 :
立即学习“PHP免费学习笔记(深入)”;
<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 吗
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号