如何在 Laravel Voyager 中创建自定义控制器

How to create custom controller in Laravel Voyager

我是 Voyager 的新手。

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

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

有人帮忙吗?

在您的 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。

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

将此添加到您的模型中。

use Illuminate\Database\Eloquent\Builder;

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

试试这个:

  • 作曲家dump-autoload
  • php artisan cache:clear
  • php artisan config:clear
  • php artisan view:clear
  • php artisan route:cache