0

我已经添加了

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'。我尝试完成这些步骤,但也没有用。有任何想法吗?

4

3 回答 3

1

aliases数组中的 config/app.php 中定义您的 Helper 外观,如下所示

'Helper' => 'Helpers\Url'

那么你可以做Helper::prep()

于 2013-08-29T16:39:35.680 回答
0

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

于 2013-08-29T18:16:33.930 回答
0

我正在关注https://stackoverflow.com/a/17091089/1454622(我更喜欢他的“选项 1”)。

我遇到了同样的问题,它在我的本地服务器上工作,但在我的远程服务器上却没有。这是我的 app/storage 上的目录和文件权限问题。我的遥控器需要这些(感谢@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

于 2014-06-28T03:49:49.043 回答