Проблема с валидацией формы

Главные вкладки

Аватар пользователя user_deleted user_deleted 16 мая 2021 в 15:37

Здравствуйте!
Есть такая проблема: сайт сделан на друпал 9, достаточно простой, модули устанавливались вручную через админку, компосер не использовался.
На сайте есть форма заявки, реализована программно. При разработке отлично работала, но после установки возникли проблемы с валидацией. Валидация имеет такой вид:

<?php       
 
if ($errors $form_state->getErrors()) {
            
// Add error to fields using Symfony Accessor
            
$accessor PropertyAccess::createPropertyAccessor();
            foreach (
$errors as $field => $error) {
                if (
$accessor->getValue($form$field)) {
                    
$accessor->setValue($form$field.'[#prefix]''<div class="form-group error">');
                    
$accessor->setValue($form$field.'[#suffix]''<div class="input-error-desc">' .$error'</div></div>');
                }
            }
        }
?>

т.е. для валидации используется пакет symfony/property-access. После переноса валидация перестала работать, пакет где то потерялся.

The website encountered an unexpected error. Please try again later.
Error: Class 'Symfony\Component\PropertyAccess\PropertyAccess' not found in Drupal\inewton\Form\AppointmentForm->validateForm() (line 177 of modules/custom/inewton/src/Form/AppointmentForm.php).
Drupal\inewton\Form\AppointmentForm->validateForm(Array, Object)
call_user_func_array(Array, Array) (Line: 82)

Как его установить? Достаточно ли просто запустить composer require symfony/property-access в терминале на хостинге?

Комментарии

Аватар пользователя marassa marassa 16 мая 2021 в 16:53

Dim@ wrote: модули устанавливались вручную через админку, компосер не использовался.
На сайте есть форма заявки, реализована программно. При разработке отлично работала

Неплохо бы конечно вспомнить каким образом эта недостающая библиотека была установлена при разработке если композер не использовался.

Dim@ wrote: Достаточно ли просто запустить composer require symfony/property-access в терминале на хостинге?

Я делал подобные вещи, оно в принципе работает, но попутно композер может накуролесить в других компонентах. Мне, например, при установке невинного cloudflare api композер снес (заменил на исходные) .htaccess и robots.txt. Я бы сказал, попробовать можно, но обязательно предварительно сделать полный бэкап, а потом проверить какие файлы изменились помимо требуемых.