Создание страницы импорта данных для Laravel Voyager

Я использую Voyager для базового администратора BREAD в небольшом веб-приложении, которое я создаю для небольшой некоммерческой организации. Ежегодно им нужно импортировать 300-500 новых полусложных записей в базу данных из Excel, поэтому я хочу создать скрипт администратора, который будет автоматически хранить все данные в нужных местах.

Есть ли структурированный способ добавления пользовательского контроллера/представления в Voyager?

(Я еще не нашел такой документации, возможно, я слепой. Поэтому я начал вручную расширять существующие части Voyager, но по мере углубления я хочу убедиться, что это лучший вариант для будущего роста.)


person gokujou    schedule 29.01.2019    source источник
comment
Это помогает? docs.laravelvoyager.com/customization/   -  person Orlando P.    schedule 30.01.2019
comment
Возможно, если бы я хотел добавить импорт ко всем таблицам в Voyager... Поскольку этот импорт коснется почти всех моих таблиц, это не совсем правильно. Я использовал это, чтобы увидеть, что расширять и как форматировать. Однако на самом деле я не хотел переопределять существующую функциональность.   -  person gokujou    schedule 30.01.2019
comment
В настоящее время я просто имитирую авторизацию администратора Voyager для своих пользовательских маршрутов и его шаблонов представлений, а затем расширяю контроллеры, чтобы они соответствовали. Я думаю, что самой большой проблемой может быть контроль доступа, если мне это нужно, но я этого не делаю, поэтому я могу не копаться в этом.   -  person gokujou    schedule 30.01.2019


Ответы (2)


Да, вы можете добавить пользовательские контроллеры в voyager.

Сначала создадим контроллер: php artisan make:controller ExportController

//app/Http/Controllers/ExportController.php
class ExportController extends Controller{
   public function form(){
      return view('export.form');
   }
   public function submit(){
      // do export stuff 
   }
}

Добавьте два маршрута, как показано ниже:

//routes/web.php
Route::group(['prefix' => 'admin','as' => 'voyager.', 'middleware' => 'admin.user'], function()
{
    Route::get('export','ExportController@form')->name('export.form');
    Route::post('export','ExportController@submit')->name('export.submit');
});

затем создайте связанный файл представления в resources/views/export/form.blade.php, просто обратите внимание, что вам нужно @extends('voyager::master')

создать новый пункт меню с помощью конструктора меню

person Mojtaba Hn    schedule 31.01.2019

вы должны использовать этот пакет. здесь вы можете узнать, как импортировать файл excel или csv в таблицу базы данных и экспортировать или загружать в другом формате, используя пакет maatwebsite с мощью PHPExcel PHPOffice.

и здесь видео.

person ma abedine    schedule 02.09.2019
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. - person atymic; 02.09.2019