【问题标题】:How to create custom controller in Laravel Voyager如何在 Laravel Voyager 中创建自定义控制器
【发布时间】:2018-07-22 11:07:15
【问题描述】:

我是 Voyager 的新手。

我在安装 Voyager 时已将所有控制器放入 TCG\\Voyager\\Http\\Controllers,但没有找到我使用 BREAD 创建的其他控制器。

此外,我还想在我的 Voyager 管理面板中的 App\\Http\\Controllers\\Voyager 中创建自定义控制器。我还按照 Youtube 中 Voyager 教程的步骤制作自定义控制器,但无法创建。

有人帮忙吗?

【问题讨论】:

  • 美好的一天!你检查过这个link吗?关于 Voyager 的自定义控制器?
  • @D. Erashkin ...不
  • @D.Erashkin... 它不起作用。控制器仍然没有在App\Http\Voyager内部创建
  • 它不会自动创建 BREAD 控制器。当您为模型创建/编辑 BREAD 时,您可以设置控制器名称。
  • @D.Erashkin... 那我不能在 Voyager 中创建自定义控制器吗?

标签: php laravel laravel-5 voyager


【解决方案1】:

在您的 config\voyager.php 文件中添加您的命名空间:

'controllers' => [
    'namespace' => 'App\Http\Controllers\Back',
],

然后将 voyageres 控制器发布到您的命名空间

php artisan voyager:controllers

在该命名空间中创建一个从 VoyagerBreadController 派生的新控制器

namespace App\Http\Controllers\Back;

use Illuminate\Http\Request;

class SchoolController extends VoyagerBreadController
{

然后你可以在面包编辑器中指定控制器。

注意:我确实必须将我的称为 Back\SchoolController 而不是我预期的 SchoolController。

【讨论】:

  • @FloatingKiwi ......我已经按照您的建议在命名空间中手动创建了控制器。但是如何在面包编辑器中指定创建的控制器呢?是来自 `vendor\tcg\voyager\resources\views\bread` 吗?
  • @raff - 它位于前端的面包编辑器中。 localhost/admin/database/schools/bread/edit
【解决方案2】:

更新: 从 1.1 版开始,您现在需要扩展 VoyagerBaseController 而不是 VoyagerBreadController

【讨论】:

  • 我已经创建了它,但是当我要编辑我的新面包时,我得到了未定义的变量:model_name(查看:/var/www/html/myapp/vendor/tcg/voyager/resources/views/tools/面包/edit-add.blade.php)
【解决方案3】:

将此添加到您的模型中。

use Illuminate\Database\Eloquent\Builder;

protected static function boot()
    {
        parent::boot();
        static::addGlobalScope('order', function (Builder $builder) {
            $builder->orderBy('name', 'asc');
        });
}

【讨论】:

    【解决方案4】:

    试试这个:

    • 作曲家转储自动加载
    • php artisan 缓存:清除
    • php 工匠配置:清除
    • php 工匠视图:清除
    • php 工匠路线:缓存

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-05
    • 2018-04-19
    • 2017-11-18
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多