Переопределение файлов
Переопределение представлений BREAD
Вы можете переопределить любое представление BREAD для отдельного BREAD, создав новую папку в resources/views/vendor/voyager/slug-name, где slug-name это slug, назначенный для данной таблицы. Есть 4 файла, которые можно переопределить.:
- browse.blade.php 
- edit-add.blade.php 
- read.blade.php 
- order.blade.php 
Или же вы можете переопределить представления для всех BREADs, создав любой из вышеперечисленных файлов в каталоге resources/views/vendor/voyager/bread.
Использование пользовательских контроллеров
Переопределение кнопки отправки:
Вы можете переопределить кнопку отправки без необходимости переопределять весь edit-add.blade.php, расширив раздел submit-button:
@extends('voyager::bread.edit-add')
@section('submit-buttons')
    @parent
    <button type="submit" class="btn btn-primary save">Save And Publish</button>
@endsectionИспользование пользовательских контроллеров
Вы можете переопределить контроллер для отдельного BREAD, создав контроллер, расширяющий контроллер Voyagers, например:
<?php
namespace App\Http\Controllers;
class VoyagerCategoriesController extends \TCG\Voyager\Http\Controllers\VoyagerBaseController
{
    //...
}После этого перейдите к настройкам BREAD и заполните Имя контроллера (Controller Name) своим полным именем класса:

Теперь вы можете переопределить все методы из VoyagerBaseController.
Переопределение контроллеров Voyagers
Используйте этот метод только в том случае, если вы знаете, что делаете Мы не рекомендуем и не поддерживаем переопределение всех контроллеров, так как в будущих обновлениях вы не получите никаких изменений кода.
Если вы хотите переопределить любой из основных контроллеров Voyager, вам сначала нужно изменить ваш конфигурационный файл config/voyager.php:
/*
|--------------------------------------------------------------------------
| Controllers config
|--------------------------------------------------------------------------
|
| Here you can specify voyager controller settings
|
*/
'controllers' => [
    'namespace' => 'App\\Http\\Controllers\\Voyager',
],Затем выполните команду php artisan voyager:controllers, после чего Voyager будет использовать контроллеры, созданные в App/Http/Controllers/Voyager.
Переопределение моделей Voyager
Вы также можете переопределить модели Voyager, если это необходимо. Для этого в метод register в вашем AppServiceProviders необходимо добавить следующее:
Voyager::useModel($name, $object);Где name — это имя класса модели, а object — полное имя вашей пользовательской модели. Например:
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Events\Dispatcher;
use TCG\Voyager\Facades\Voyager;
class AppServiceProvider extends ServiceProvider
{
    public function register()
    {
        Voyager::useModel('DataRow', \App\DataRow::class);
    }
    // ...
}Следующий шаг — создать свою модель и расширить ее от оригинальной. В случае DataRow:
<?php
namespace App;
class DataRow extends \TCG\Voyager\Models\DataRow
{
    // ...
}Если переопределяемая вами модель имеет ассоциированный BREAD, перейдите к настройкам BREAD для переопределяемой модели и замените Имя модели (Model Name) на полное имя вашего класса. Например, если Вы переопределили модель Voyager Menu своей моделью App\Menu:

Last updated
Was this helpful?
