Php 未找到Laravel 4类和名称空间
在Laravel4站点中,我安装了一个标签云库。在此库中,我希望编辑函数的返回行(我在这里对其进行了简化): 我认为这可能意味着请求类在tagcloud类中不可见,它与名称空间有关 在tagcloud类文件的顶部有以下几行:Php 未找到Laravel 4类和名称空间,php,laravel,namespaces,Php,Laravel,Namespaces,在Laravel4站点中,我安装了一个标签云库。在此库中,我希望编辑函数的返回行(我在这里对其进行了简化): 我认为这可能意味着请求类在tagcloud类中不可见,它与名称空间有关 在tagcloud类文件的顶部有以下几行: <?php namespace Arg\Tagcloud; use Illuminate\Support\Facades\Facade; 或 我在上面的前两个“use”语句下面添加了它们,但得到了相同的错误(找不到类)。这是一个寻找正确名称空间的问题还是其他问题?有
<?php namespace Arg\Tagcloud;
use Illuminate\Support\Facades\Facade;
或
我在上面的前两个“use”语句下面添加了它们,但得到了相同的错误(找不到类)。这是一个寻找正确名称空间的问题还是其他问题?有人能帮忙吗?谢谢
编辑:我找到了一种不用电脑就能做我想做的事情的方法
请求::url():
返回“
";
无论何时将类放在名称空间中,在该类中引用的任何其他类都假定它也在同一名称空间中,除非您另行说明
因此,由于在直接引用Request::url()
时将名称空间设置为Arg\Tagcloud
,PHP认为您是在告诉它使用Arg\Tagcloud
名称空间中的Request
类
有两种解决方案:
解决方案1
在请求前面添加\
,告诉PHP使用全局命名空间,而不是Arg\Tagcloud
命名空间
e、 例如,
解决方案2
使用该类
只需将use Request
添加到类的顶部(在名称空间下),这会让PHP知道您想要使用这个类,但它不属于当前名称空间
e、 g
当我尝试运行该页面时,会出现以下错误:
Class 'Arg\Tagcloud\Request' not found
Class'Arg\Tagcloud\Request'未找到
这是因为您正在使用来自Arg\Tagcloud
命名空间的Request
类,并且当您使用Request::someMethod()
框架时,Request
类位于同一命名空间下,即:
Arg\Tagcloud\Request
但是,实际上,Request
类位于illighted\Http
命名空间下,这就是发生错误的原因。要解决此问题,您可以使用以下方法:
\Request::someMethod();
或者你也可以在你班的最顶端使用以下内容:
use \Request;
您不需要使用use-illumb\Request代码>因为全局名称空间(作为别名)中提供了Request
facade类,该类将解析illighted\Http\Request
类。因此,您可以在代码中直接使用Request::someMethod()
。谢谢您的回答。现在可以了。
use Illuminate;
return "<span>
<a href='/mysitename/public/myroute/{$variable}'>
{$variable}
</a>
</span>";
<?php namespace Arg\Tagcloud;
use Request;
Arg\Tagcloud\Request
\Request::someMethod();
use \Request;