Laravel webwizo短代码包找不到Shortcodes类

时间:2017-04-14 12:01:45

标签: php wordpress laravel

我最近开始使用laravel,所以我是初学者,现在我正在开发一个小项目,需要我使用短代码(比如wordpress中的短代码)。 所以我搜索了一下,发现了这个包:

https://packagist.org/packages/webwizo/laravel-shortcodes

我按照它的编写方式运行安装和使用,但是我收到错误:在提供程序中找不到类'App \ Providers \ Shortcode'我必须使用laravel make:provider命令,如包说明中指定的那样,以下是我的确切用法和安装代码。

  1. 将此添加到providers数组中:

    null
  2. 将此添加到别名:

    'Shortcode'=> Webwizo \简码\外墙\简码::类,

  3. 这是app / providers中我的ShortcodesServiceProvider的内容:

    命名空间App \ Providers;

    使用Illuminate \ Support \ ServiceProvider; 使用App \ Shortcodes \ JobsForm;

    class ShortcodesServiceProvider扩展ServiceProvider { / **

    • 引导应用程序服务。 *
    • @return void * / 公共功能启动() { // }

    / **

    • 注册应用程序服务。 *
    • @return void * / 公共职能登记册() { Shortcode :: register('jobs',JobsForm :: class); } }
  4. 我使用laravel 5.4这可能是一个问题。

    该类显然存在,它给出了Shortcodes类找不到错误,因为我认为它在app / providers / ShortcodesServiceProvider文件中搜索它,显然它不在供应商文件中。

    是否有一些我遗漏的东西我已经检查过并经过双重检查,我似乎无法让这件事工作。

    考虑到它的别名定义正确吗?

    我在视图中使用它:

     /*
     * shortcodes providers
     */
    Webwizo\Shortcodes\ShortcodesServiceProvider::class,
    App\Providers\ShortcodesServiceProvider::class,
    

    感谢您花时间阅读本文,我们将非常感谢您的帮助。

    如果您需要更多信息,我很乐意提供。

    P.S。对不起英语不好,不是母语:P

1 个答案:

答案 0 :(得分:1)

它在Shortcode命名空间中搜索App\Providers;,而不是在定义Facade的根命名空间中搜索。

您可以通过执行以下操作在App\Providers\ShortcodesServiceProvider.php中解决此问题:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider; 
use App\Shortcodes\JobsForm;
use Shortcode;

class ShortcodesServiceProvider extends ServiceProvider
{

或使用\Shortcode

/**
 * Register the application services.
 *
 * @return void
 */
public function register()
{
    \Shortcode::register('jobs', JobsForm::class);
}

我会推荐第一个选项。