Laravel webwizo 简码包 Shortcodes 类未找到
Posted
技术标签:
【中文标题】Laravel webwizo 简码包 Shortcodes 类未找到【英文标题】:Laravel webwizo shortcodes package Shortcodes class not found 【发布时间】:2017-09-10 16:32:41 【问题描述】:我最近开始使用 laravel,所以我是一个初学者,现在我正在做一个需要我使用简码的小项目(比如 wordpress 中的简码)。 于是我搜索了一下,发现了这个包:
https://packagist.org/packages/webwizo/laravel-shortcodes
我按照它的编写方式运行了安装和使用,但我得到了错误:在提供程序中找不到类“App\Providers\Shortcode”我必须使用包说明中指定的 laravel make:provider 命令,下面是我的具体用法和安装代码。
将此添加到提供程序数组中:
/*
* shortcodes providers
*/
Webwizo\Shortcodes\ShortcodesServiceProvider::class,
App\Providers\ShortcodesServiceProvider::class,
将此添加到别名中:
'Shortcode' => Webwizo\Shortcodes\Facades\Shortcode::class,
这是我在 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
【问题讨论】:
【参考方案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 短代码行放在提供程序中,这可能会让某些用户感到困惑,至少对我来说是这样。感谢您的帮助以上是关于Laravel webwizo 简码包 Shortcodes 类未找到的主要内容,如果未能解决你的问题,请参考以下文章