【问题标题】:Laravel helper class not found未找到 Laravel 助手类
【发布时间】:2013-09-02 04:59:11
【问题描述】:

我已经添加了

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,但它也没有工作。有什么想法吗?

【问题讨论】:

  • 你运行 composer dump-autoload 了吗?
  • 是的,但由于它没有加载到作曲家中,它没有做任何事情。我什至在 composer 中添加了 classes 目录,然后转储,仍然得到相同的结果。
  • Class Url {}Class URL {}?
  • 但是在 composer.json - 在“autoload”/“classmap”下 - 你添加了“app/classes”吗?
  • 当您尝试在 global.php 中使用 app_path() 加载类时,namespace 将不起作用。如果你需要 namespace 那么你必须使用 composer.json 自动加载。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 你可能有区分大小写的问题。
    • 对不起,没有。如上述评论所述。我尝试了两种方法,但仍然遇到相同的错误,只是在不同的情况下。
    • 当我将路径添加到 global.php 时,我的助手没有加载任何服务器,而是加载到另一台服务器,然后我添加到 composer.json 并执行转储自动加载,它们现在可以工作了。
    【解决方案3】:

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

    'Helper' =&gt; 'Helpers\Url'

    那你就可以Helper::prep()

    【讨论】:

    • 我刚试过这个,我仍然得到同样的错误,只是先加载了框架中的更多代码。
    猜你喜欢
    • 2013-07-31
    • 2017-01-02
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2011-07-28
    • 2020-02-10
    相关资源
    最近更新 更多