Добавить содержимое из pdf2text в столбец базы данных в Voyager Laravel - PullRequest
0 голосов
/ 30 апреля 2020

Чтобы дать контекст, я создал базу данных и ее ХЛЕБ для таблицы. Я также загружаю PDF-файл в BREAD, и он сохраняется в столбце.

Теперь я хочу конвертировать PDF в текст. Я использую пакет Spat ie (https://github.com/spatie/pdf-to-text).

$textfromPDF = Pdf::getText('storage/' . $pdf_file_name); 

Я могу получить детали в переменной $ textfromPDF. Я также использую администратор Voyager. Как я могу подключить этот код в VoyagerBaseController. php, чтобы он сохранялся в столбце базы данных вместе с другими столбцами, хранящимися? Там не будет никакой записи пользователя в этом столбце. Только преобразование текста. (Я создал собственный контроллер, производный от базового контроллера) и сохранил данные в столбце таблицы из $ textfromPDF?

Ниже приведен метод хранения для пользовательского контроллера, скопированный из Voyager Base Controller:

  public function store(Request $request)
    {
        $slug = $this->getSlug($request);

        $dataType = Voyager::model('DataType')->where('slug', '=', $slug)->first();

        // Check permission
        $this->authorize('add', app($dataType->model_name));

        // Validate fields with ajax
        $val = $this->validateBread($request->all(), $dataType->addRows)->validate();
        $data = $this->insertUpdateData($request, $slug, $dataType->addRows, new $dataType->model_name());

        event(new BreadDataAdded($dataType, $data));

        if (!$request->has('_tagging')) {
            if (auth()->user()->can('browse', $data)) {
                $redirect = redirect()->route("voyager.{$dataType->slug}.index");
            } else {
                $redirect = redirect()->back();
            }

            return $redirect->with([
                'message'    => __('voyager::generic.successfully_added_new')." {$dataType->getTranslatedAttribute('display_name_singular')}",
                'alert-type' => 'success',
            ]);
        } else {
            return response()->json(['success' => true, 'data' => $data]);
        }
    }
...