How to create custom controller in Laravel Voyager

23.2k views Asked by At

I am very new in Voyager.

I have got all the controllers inside TCG\\Voyager\\Http\\Controllers while installing Voyager but didn't find other controllers those I have created using BREAD.

Besides that I want to create custom controller in my Voyager admin panel inside App\\Http\\Controllers\\Voyager . I also followed the steps of Voyager tutorial in Youtube for making custom controller, but couldn't create.

Anybody help please ?

4

There are 4 answers

2
FloatingKiwi On BEST ANSWER

In your config\voyager.php file add your namespace:

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

Then publish voyageres controllers to your namespace

php artisan voyager:controllers

Within that namespace create a new controller derived from VoyagerBreadController

namespace App\Http\Controllers\Back;

use Illuminate\Http\Request;

class SchoolController extends VoyagerBreadController
{

Then you can specify the controller in the bread editor.

NOTE: I did have to refer to mine as Back\SchoolController instead of just SchoolController as I would have expected.

Setting controller on backend

1
Gourav Pathela On

Update: From version 1.1 now you need to extend VoyagerBaseController instead of VoyagerBreadController.

1
Yamin Mechqi On

Try this :

  • composer dump-autoload
  • php artisan cache:clear
  • php artisan config:clear
  • php artisan view:clear
  • php artisan route:cache
0
Stoney Eagle On

Add this to your model.

use Illuminate\Database\Eloquent\Builder;

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