没找到Laravel助手类

时间:2013-08-29 16:32:55

标签: php oop laravel laravel-4 composer-php

我添加了

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'。我尝试了these steps,但它也没有用。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

aliases数组中的config / app.php中定义了你的Helper外观

'Helper' => 'Helpers\Url'

然后你可以Helper::prep()

答案 1 :(得分:0)

好的,我发现了问题。我将“app / classes / helpers”重命名为“app / helpers”,然后将新的app / helpers添加到composer.json和global.php并运行composer dump。通过一些PHP文档,看起来PHP有时会在目录和命名空间中使用“类”,“类”或其他保留类型的单词时出现问题。我仍然不确定为什么这在本地工作,但不在服务器上。

答案 2 :(得分:0)

我关注https://stackoverflow.com/a/17091089/1454622(他的&#34;选项1&#34;,我更喜欢)。

我有同样的问题,它在我的本地工作,但不在我的远程服务器上。 我的应用/存储空间上的目录和文件权限问题。我的遥控器需要这些(感谢@elliotyap):

1)我的帮助程序类位于app/libs,因此我添加到composer.json部分的autoload文件中:"app/libs",

2)php composer.phar dump-autoload

它还需要一些权限更改:

3)sudo chgrp THE_SERVERS_WEB_SERVER_USER_HERE app/storage