未找到Laravel辅助类


Laravel helper class not found

我添加了

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(Helpers'URL::prep($place->url), $place->url, array('target' => '_blank'))}}

这在本地运行良好,但在我的服务器上,我收到了一个错误:找不到类"Helpers''URL"。我试着完成这些步骤,但也没有成功。有什么想法吗?

aliases数组中config/app.php中的

定义Helper facade

'Helper' => 'Helpers'Url'

则可以执行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