【问题标题】:Laravel webwizo shortcodes package Shortcodes class not foundLaravel webwizo 简码包 Shortcodes 类未找到
【发布时间】:2017-09-10 16:32:41
【问题描述】:

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

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

我按照它的编写方式运行了安装和使用,但我得到了错误:在提供程序中找不到类“App\Providers\Shortcode”我必须使用包说明中指定的 laravel make:provider 命令,下面是我的具体用法和安装代码。

  1. 将此添加到提供程序数组中:

     /*
     * shortcodes providers
     */
    Webwizo\Shortcodes\ShortcodesServiceProvider::class,
    App\Providers\ShortcodesServiceProvider::class,
    
  2. 将此添加到别名中:

    'Shortcode' => Webwizo\Shortcodes\Facades\Shortcode::class,

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

    命名空间 App\Providers;

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

    类 ShortcodesServiceProvider 扩展了 ServiceProvider { /**

    • 引导应用程序服务。 *
    • @return 无效 */ 公共函数启动() { // }

    /**

    • 注册应用程序服务。 *
    • @return 无效 */ 公共函数寄存器() { 简码::register('jobs', JobsForm::class); } }

我使用 laravel 5.4,所以这可能是个问题。

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

我已经检查并仔细检查了我缺少的东西,我似乎无法让这个东西工作。

考虑到它定义了一个别名,它应该可以工作吗?

我在视图中这样使用它:

return view('quarx-frontend::pages.' . $page->template)->with('page', $page)->withShortcodes();

感谢您抽出宝贵时间阅读本文,我们将不胜感激。

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

附言抱歉英语不好,不是母语人士:P

【问题讨论】:

    标签: php wordpress laravel


    【解决方案1】:

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

    您可以通过以下任一方式在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);
    }
    

    我会推荐第一个选项。

    【讨论】:

    • 谢谢,我尝试了第一个选项并且它有效,我想他们应该指定将 use 短代码行放在提供程序中,这可能会让某些用户感到困惑,至少对我来说是这样。感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2018-05-03
    • 2018-04-24
    • 2017-01-12
    • 2017-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多