我添加了
app_path().'/classes',
到ClassLoader::addDirectories数组中的global.php。在app/classes/helpers/Url.php中我有:
<?php namespace Helpers;
class Url {
public static function prep($str)
{
if ($str == 'http://' OR $str == '')
{
return '';
}
$url = parse_url($str);
if ( ! $url OR ! isset($url['scheme']))
{
$str = 'http://'.$str;
}
return $str;
}
}
然后在一个视图中我有:
{{HTML::link(HelpersURL::prep($place->url), $place->url, array('target' => '_blank'))}}
这在本地运行良好,但在我的服务器上,我收到了一个错误:找不到类"Helpers\URL"。我试着完成这些步骤,但也没有成功。有什么想法吗?
aliases
数组中config/app.php中的定义Helper facade
'Helper' => 'HelpersUrl'
则可以执行Helper::prep()
好的,我发现了问题。我将"app/classes/helpers"重命名为"app/helpers",然后将新的app/helper添加到composer.json和global.php中,并运行composer dump。查阅一些PHP文档,PHP有时在目录和名称空间中使用"class"、"classes"或其他保留类型的单词时似乎会遇到问题。我仍然不确定为什么它在本地工作,但在服务器上不工作。
我在下面https://stackoverflow.com/a/17091089/1454622(我更喜欢他的"备选方案1")。
我遇到了同样的问题,它在我的本地服务器上工作,但在我的远程服务器上不工作这是我的应用程序/存储上的目录和文件权限问题。我的遥控器需要这些(谢谢@elliotyap):
1) 我的助手类在app/libs
中,所以我在autoload
部分向composer.json
文件中添加了:"app/libs",
2) php composer.phar dump-autoload
它还需要一些权限更改:
3) sudo chgrp THE_SERVERS_WEB_SERVER_USER_HERE app/storage