Я только что обновился с версии 1.7.4.2 с 1.7.6.4. С тех пор я больше не могу получить доступ к своим продуктам или создавать новый продукт.
Я проверил обе страницы в режиме отладки, и вот ошибка, которую я получаю;
Попытка вызова неопределенного метода с именем "getLegacyAdminLink" класса "Link". Вы хотели позвонить "getAdminLink"?
Image de l'écran: EXCEPTION
LOGS:
Symfony\Component\Debug\Exception\ UndefinedMethodException
in src/Adapter/LegacyContext.php (line 124)
*
* @return string
*/
public function getLegacyAdminLink($controller, $withToken = true, $extraParams = array())
{
return $this->getContext()->link->getLegacyAdminLink($controller, $withToken, $extraParams, $extraParams);
}
/**
* Returns the controller link in its legacy form, without trying to convert it in symfony url.
*
LegacyContext->getLegacyAdminLink('AdminProducts', true, array('ajax' => 1, 'action' => 'productsList', 'forceJson' => 1, 'excludeVirtuals' => 1, 'limit' => 20)) in src/PrestaShopBundle/Form/Admin/Product/ProductInformation.php (line 146)
ProductInformation->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null)) in vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php (line 126)
ResolvedFormType->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null)) in vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php (line 95)
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->proxiedType->buildForm($builder, $options);
}
/**
* {@inheritdoc}
*/
ResolvedTypeDataCollectorProxy->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null)) in vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php (line 80)
$builder = $type->createBuilder($this, $name, $options);
// Explicitly call buildForm() in order to be able to override either
// createBuilder() or buildForm() in the resolved form type
$type->buildForm($builder, $builder->getOptions());
return $builder;
}
/**
FormFactory->createNamedBuilder('step1', object(ResolvedTypeDataCollectorProxy), null, array()) in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php (line 101)
if (null === $type && null === $this->getDataClass()) {
$type = 'Symfony\Component\Form\Extension\Core\Type\TextType';
}
if (null !== $type) {
return $this->getFormFactory()->createNamedBuilder($name, $type, null, $options);
}
return $this->getFormFactory()->createBuilderForProperty($this->getDataClass(), $name, null, $options);
}
FormBuilder->create('step1', 'PrestaShopBundle\\Form\\Admin\\Product\\ProductInformation', array()) in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php (line 255)
* Converts all unresolved children into {@link FormBuilder} instances.
*/
private function resolveChildren()
{
foreach ($this->unresolvedChildren as $name => $info) {
$this->children[$name] = $this->create($name, $info[0], $info[1]);
}
$this->unresolvedChildren = [];
}
}
FormBuilder->resolveChildren() in vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php (line 202)
{
if ($this->locked) {
throw new BadMethodCallException('FormBuilder methods cannot be accessed anymore once the builder is turned into a FormConfigInterface instance.');
}
$this->resolveChildren();
$form = new Form($this->getFormConfig());
foreach ($this->children as $child) {
// Automatic initialization is only supported on root forms
FormBuilder->getForm() in src/PrestaShopBundle/Controller/Admin/ProductController.php (line 700)
ProductCombination::class
);
}
}
return $formBuilder->getForm();
}
/**
* Do bulk action on a list of Products. Used with the 'selection action' dropdown menu on the Catalog page.
*
ProductController->createProductForm(object(Product), object(AdminModelAdapter)) in src/PrestaShopBundle/Controller/Admin/ProductController.php (line 447)
$isMultiShopContext = count($shopContext->getContextListShopID()) > 1;
$modelMapper = $this->get('prestashop.adapter.admin.model.product');
$adminProductWrapper = $this->get('prestashop.adapter.admin.wrapper.product');
$form = $this->createProductForm($product, $modelMapper);
$formBulkCombinations = $this->createForm(
ProductCombinationBulk::class,
null,
[
ProductController->formAction('330', object(Request)) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 151)
$this->dispatcher->dispatch(KernelEvents::CONTROLLER_ARGUMENTS, $event);
$controller = $event->getController();
$arguments = $event->getArguments();
// call controller
$response = \call_user_func_array($controller, $arguments);
// view
if (!$response instanceof Response) {
$event = new GetResponseForControllerResultEvent($this, $request, $type, $response);
$this->dispatcher->dispatch(KernelEvents::VIEW, $event);
HttpKernel->handleRaw(object(Request), 1) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php (line 68)
public function handle(Request $request, $type = HttpKernelInterface::MASTER_REQUEST, $catch = true)
{
$request->headers->set('X-Php-Ob-Level', ob_get_level());
try {
return $this->handleRaw($request, $type);
} catch (\Exception $e) {
if ($e instanceof RequestExceptionInterface) {
$e = new BadRequestHttpException($e->getMessage(), $e);
}
if (false === $catch) {
HttpKernel->handle(object(Request), 1, false) in vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php (line 200)
$this->boot();
++$this->requestStackSize;
$this->resetServices = true;
try {
return $this->getHttpKernel()->handle($request, $type, $catch);
} finally {
--$this->requestStackSize;
}
}
Kernel->handle(object(Request), 1, false) in admin242mkk2nb/index.php (line 86)
$request = Request::createFromGlobals();
Request::setTrustedProxies([], Request::HEADER_X_FORWARDED_ALL);
try {
require_once __DIR__.'/../autoload.php';
$response = $kernel->handle($request, HttpKernelInterface::MASTER_REQUEST, false);
$response->send();
$kernel->terminate($request, $response);
} catch (NotFoundHttpException $exception) {
define('ADMIN_LEGACY_CONTEXT', true);
// correct Apache charset (except if it's too late)
STACKTRACE:
Symfony\Component\Debug\Exception\UndefinedMethodException:
Attempted to call an undefined method named "getLegacyAdminLink" of class "Link".
Did you mean to call "getAdminLink"?
at src/Adapter/LegacyContext.php:124
at PrestaShop\PrestaShop\Adapter\LegacyContext->getLegacyAdminLink('AdminProducts', true, array('ajax' => 1, 'action' => 'productsList', 'forceJson' => 1, 'excludeVirtuals' => 1, 'limit' => 20))
(src/PrestaShopBundle/Form/Admin/Product/ProductInformation.php:146)
at PrestaShopBundle\Form\Admin\Product\ProductInformation->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null))
(vendor/symfony/symfony/src/Symfony/Component/Form/ResolvedFormType.php:126)
at Symfony\Component\Form\ResolvedFormType->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null))
(vendor/symfony/symfony/src/Symfony/Component/Form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php:95)
at Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->buildForm(object(FormBuilder), array('block_name' => null, 'disabled' => false, 'label' => null, 'label_format' => null, 'translation_domain' => null, 'auto_initialize' => true, 'trim' => true, 'required' => true, 'property_path' => null, 'mapped' => true, 'by_reference' => true, 'inherit_data' => false, 'compound' => true, 'method' => 'POST', 'action' => '', 'post_max_size_message' => 'The uploaded file was too large. Please try to upload a smaller file.', 'allow_file_upload' => false, 'error_mapping' => array(), 'invalid_message' => 'This value is not valid.', 'invalid_message_parameters' => array(), 'allow_extra_fields' => false, 'extra_fields_message' => 'This form should not contain extra fields.', 'csrf_protection' => true, 'csrf_field_name' => '_token', 'csrf_message' => 'The CSRF token is invalid. Please try to resubmit the form.', 'csrf_token_manager' => object(CsrfTokenManager), 'csrf_token_id' => null, 'attr' => array(), 'data_class' => null, 'empty_data' => object(Closure), 'error_bubbling' => true, 'label_attr' => array(), 'upload_max_size_message' => object(Closure), 'validation_groups' => null, 'constraints' => array(), 'help' => null))
(vendor/symfony/symfony/src/Symfony/Component/Form/FormFactory.php:80)
at Symfony\Component\Form\FormFactory->createNamedBuilder('step1', object(ResolvedTypeDataCollectorProxy), null, array())
(vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php:101)
at Symfony\Component\Form\FormBuilder->create('step1', 'PrestaShopBundle\\Form\\Admin\\Product\\ProductInformation', array())
(vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php:255)
at Symfony\Component\Form\FormBuilder->resolveChildren()
(vendor/symfony/symfony/src/Symfony/Component/Form/FormBuilder.php:202)
at Symfony\Component\Form\FormBuilder->getForm()
(src/PrestaShopBundle/Controller/Admin/ProductController.php:700)
at PrestaShopBundle\Controller\Admin\ProductController->createProductForm(object(Product), object(AdminModelAdapter))
(src/PrestaShopBundle/Controller/Admin/ProductController.php:447)
at PrestaShopBundle\Controller\Admin\ProductController->formAction('341', object(Request))
(vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:151)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/symfony/src/Symfony/Component/HttpKernel/HttpKernel.php:68)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, false)
(vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:200)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request), 1, false)
(admin242mkk2nb/index.php:86)
Merci!