Php 为什么我的类出现在controller中,而不是Laravel中的模型中?

Php 为什么我的类出现在controller中,而不是Laravel中的模型中?,php,laravel,namespaces,Php,Laravel,Namespaces,--请不管,我已经解决了问题;见下文-- 我在一个控制器中有使用Nexmo的代码,它在名称空间为“App\Http\Controllers”的控制器中运行良好 $basic=new-Nexmo\Client\Credentials\basic('xxxxxxx','xxxxxxxxxxx') 然而,我决定重构并将此代码放入一个名称空间仅为“App”的模型中。 现在,我在这一行得到一个“未找到类”错误。我猜这个问题是由于我对名称空间或路径的误解造成的 如果名称空间前面没有\,编译器将从当前名称空间

--请不管,我已经解决了问题;见下文-- 我在一个控制器中有使用Nexmo的代码,它在名称空间为“App\Http\Controllers”的控制器中运行良好

$basic=new-Nexmo\Client\Credentials\basic('xxxxxxx','xxxxxxxxxxx')

然而,我决定重构并将此代码放入一个名称空间仅为“App”的模型中。
现在,我在这一行得到一个“未找到类”错误。我猜这个问题是由于我对名称空间或路径的误解造成的

如果名称空间前面没有
\
,编译器将从当前名称空间开始查看

因此,要么在类名前面添加一个
\
,要么在PHP文件顶部包含名称空间

$basic = new \Nexmo\Client\Credentials\Basic('xxxxxxx', 'xxxxxxxxxxxx');
//           ^ here

这在控制器中起作用的原因可能是因为在PHP文件的顶部有一个include for
Nexmo

您是否尝试过在类声明上方添加
use-Nexmo\Client\Credentials\Basic
,然后只执行
$Basic=new-Basic('xxxxxxx',xxxxxxxxxxx')在模型中?

嗯,我觉得自己很傻。我让git还原删除了我安装但不想要的Laravel软件包,然后我回过头去删除了Nexmo客户端安装,这显然解释了为什么找不到该类。我重新安装了Nexmo软件包并。。。瞧!它起作用了。
$basic = new \Nexmo\Client\Credentials\Basic('xxxxxxx', 'xxxxxxxxxxxx');
//           ^ here

很抱歉浪费了大家的时间。

请共享控制器和模型如果我按照您的建议添加
\
,错误只会更改为“Class Nexmo\Client\Credentials\Basic Not Found”,而不是“Class App\Nexmo\Client\Credentials\Basic Not Found”。我在控制器PHP文件中没有包含Nexmo。