Exceptions
Exception
Symfony\Component\Filesystem\Exception\ IOException
Show exception properties
Symfony\Component\Filesystem\Exception\IOException {#1321 -path: "/var/www/SAE301/public/uploads/articles/" }
in
vendor/symfony/filesystem/Filesystem.php
(line 98)
if (is_dir($dir)) {continue;}if (!self::box('mkdir', $dir, $mode, true) && !is_dir($dir)) {throw new IOException(\sprintf('Failed to create "%s": ', $dir).self::$lastError, 0, null, $dir);}}}/**
in
vendor/easycorp/easyadmin-bundle/src/Form/Type/FileUploadType.php
->
mkdir
(line 154)
if ($isLocalFilesystem && !str_starts_with($value, $this->projectDir)) {$value = $this->projectDir.'/'.$value;}if ($isLocalFilesystem && !is_dir($value)) {$this->filesystem->mkdir($value);}if ($isLocalFilesystem && !is_writable($value)) {throw new InvalidArgumentException(sprintf('The upload directory "%s" is not writable.', $value));}
in
vendor/symfony/options-resolver/OptionsResolver.php
->
{closure:EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType::configureOptions():142}
(line 1124)
// dependency// BEGIN$this->calling[$option] = true;try {foreach ($this->normalizers[$option] as $normalizer) {$value = $normalizer($this, $value);}} finally {unset($this->calling[$option]);}// END
in
vendor/symfony/options-resolver/OptionsResolver.php
->
offsetGet
(line 903)
$clone->locked = true;// Now process the individual options. Use offsetGet(), which resolves// the option itself and any options that the option depends onforeach ($clone->defaults as $option => $_) {$clone->offsetGet($option);}return $clone->resolved;}
in
vendor/symfony/form/ResolvedFormType.php
->
resolve
(line 77)
}public function createBuilder(FormFactoryInterface $factory, string $name, array $options = []): FormBuilderInterface{try {$options = $this->getOptionsResolver()->resolve($options);} catch (ExceptionInterface $e) {throw new $e(\sprintf('An error has occurred resolving the options of the form "%s": ', get_debug_type($this->getInnerType())).$e->getMessage(), $e->getCode(), $e);}// Should be decoupled from the specific option at some point
in
vendor/symfony/form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php
->
createBuilder
(line 58)
return $this->proxiedType->getTypeExtensions();}public function createBuilder(FormFactoryInterface $factory, string $name, array $options = []): FormBuilderInterface{$builder = $this->proxiedType->createBuilder($factory, $name, $options);$builder->setAttribute('data_collector/passed_options', $options);$builder->setType($this);return $builder;
in
vendor/symfony/form/FormFactory.php
->
createBuilder
(line 67)
$options['data'] = $data;}$type = $this->registry->getType($type);$builder = $type->createBuilder($this, $name, $options);if ($builder instanceof FormFlowBuilderInterface) {$builder->setInitialOptions($options);}
in
vendor/easycorp/easyadmin-bundle/src/Form/Type/CrudFormType.php
->
createNamedBuilder
(line 112)
$formFieldOptions['ea_form_tab'] = $currentFormTab;}$name = $this->isTypeFormField($formFieldType) ? $fieldDto->getPropertyNameWithSuffix() : $name;$formField = $builder->getFormFactory()->createNamedBuilder($name, $formFieldType, null, $formFieldOptions);$formField->setAttribute('ea_entity', $entityDto);$formField->setAttribute('ea_form_fieldset', $options['ea_form_fieldset'] ?? $currentFormFieldset);$formField->setAttribute('ea_form_tab', $options['ea_form_tab'] ?? $currentFormTab);$formField->setAttribute('ea_field', $fieldDto);
in
vendor/symfony/form/ResolvedFormType.php
->
buildForm
(line 100)
public function buildForm(FormBuilderInterface $builder, array $options): void{$this->parent?->buildForm($builder, $options);$this->innerType->buildForm($builder, $options);foreach ($this->typeExtensions as $extension) {$extension->buildForm($builder, $options);}}
in
vendor/symfony/form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php
->
buildForm
(line 73)
return $this->proxiedType->createView($form, $parent);}public function buildForm(FormBuilderInterface $builder, array $options): void{$this->proxiedType->buildForm($builder, $options);}public function buildView(FormView $view, FormInterface $form, array $options): void{$this->proxiedType->buildView($view, $form, $options);
in
vendor/symfony/form/FormFactory.php
->
buildForm
(line 75)
$builder->setInitialOptions($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;}public function createBuilderForProperty(string $class, string $property, mixed $data = null, array $options = []): FormBuilderInterface
in
vendor/easycorp/easyadmin-bundle/src/Factory/FormFactory.php
->
createNamedBuilder
(line 51)
$formOptions->set('attr.class', trim(($formOptions->get('attr.class') ?? '').' '.$cssClass));$formOptions->set('attr.id', sprintf('new-%s-form', $entityDto->getName()));$formOptions->set('entityDto', $entityDto);$formOptions->setIfNotSet('translation_domain', $context->getI18n()->getTranslationDomain());return $this->symfonyFormFactory->createNamedBuilder($entityDto->getName(), CrudFormType::class, $entityDto->getInstance(), $formOptions->all());}public function createNewForm(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormInterface{return $this->createNewFormBuilder($entityDto, $formOptions, $context)->getForm();
in
vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php
->
createNewFormBuilder
(line 560)
return $this->createNewFormBuilder($entityDto, $formOptions, $context)->getForm();}public function createNewFormBuilder(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormBuilderInterface{return $this->container->get(FormFactory::class)->createNewFormBuilder($entityDto, $formOptions, $context);}/*** Used to add/modify/remove parameters before passing them to the Twig template.*/
in
vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php
->
createNewFormBuilder
(line 555)
return $this->container->get(FormFactory::class)->createEditFormBuilder($entityDto, $formOptions, $context);}public function createNewForm(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormInterface{return $this->createNewFormBuilder($entityDto, $formOptions, $context)->getForm();}public function createNewFormBuilder(EntityDto $entityDto, KeyValueStore $formOptions, AdminContext $context): FormBuilderInterface{return $this->container->get(FormFactory::class)->createNewFormBuilder($entityDto, $formOptions, $context);
in
vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php
->
createNewForm
(line 314)
$context->getEntity()->setInstance($this->createEntity($entityFqcn));$this->container->get(FieldFactory::class)->processFields($context->getEntity(), FieldCollection::new($this->configureFields(Crud::PAGE_NEW)), Crud::PAGE_NEW);$context->getCrud()->setFieldAssets($this->getFieldAssets($context->getEntity()->getFields()));$this->container->get(ActionFactory::class)->processEntityActions($context->getEntity(), $context->getCrud()->getActionsConfig());$newForm = $this->createNewForm($context->getEntity(), $context->getCrud()->getNewFormOptions(), $context);$newForm->handleRequest($context->getRequest());/** @var TEntity $entityInstance */$entityInstance = $newForm->getData();$context->getEntity()->setInstance($entityInstance);
in
vendor/symfony/http-kernel/HttpKernel.php
->
new
(line 183)
$this->dispatcher->dispatch($event, KernelEvents::CONTROLLER_ARGUMENTS);$controller = $event->getController();$arguments = $event->getArguments();// call controller$response = $controller(...$arguments);// viewif (!$response instanceof Response) {$event = new ViewEvent($this, $request, $type, $response, $event);$this->dispatcher->dispatch($event, KernelEvents::VIEW);
in
vendor/symfony/http-kernel/HttpKernel.php
->
handleRaw
(line 76)
$request->headers->set('X-Php-Ob-Level', (string) ob_get_level());$this->requestStack->push($request);$response = null;try {return $response = $this->handleRaw($request, $type);} catch (\Throwable $e) {if ($e instanceof \Error && !$this->handleAllThrowables) {throw $e;}
in
vendor/symfony/http-kernel/Kernel.php
->
handle
(line 191)
if (!$this->handlingHttpCache) {$this->resetServices = true;}try {return $this->getHttpKernel()->handle($request, $type, $catch);} finally {--$this->requestStackSize;}}
in
vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php
->
handle
(line 35)
) {}public function run(): int{$response = $this->kernel->handle($this->request);if (Kernel::VERSION_ID >= 60400) {$response->send(false);if (\function_exists('fastcgi_finish_request') && !$this->debug) {
in
vendor/autoload_runtime.php
->
run
(line 32)
$app = $app(...$args);exit($runtime->getRunner($app)->run());
<?phpuse App\Kernel;require_once dirname(__DIR__).'/vendor/autoload_runtime.php';return function (array $context) {return new Kernel($context['APP_ENV'], (bool) $context['APP_DEBUG']);};
Logs
| Level | Channel | Message |
|---|---|---|
| INFO 20:07:40 | request |
Matched route "_profiler". {
"route": "_profiler",
"route_parameters": {
"_route": "_profiler",
"_controller": "web_profiler.controller.profiler::panelAction",
"token": "b6f0d1"
},
"request_uri": "http://sae301.mmi24c04.mmi-troyes.fr/_profiler/b6f0d1",
"method": "GET"
}
|
Stack Trace
|
IOException
|
|---|
Symfony\Component\Filesystem\Exception\IOException:
Failed to create "/var/www/SAE301/public/uploads/articles/": mkdir(): Permission denied
at vendor/symfony/filesystem/Filesystem.php:98
at Symfony\Component\Filesystem\Filesystem->mkdir()
(vendor/easycorp/easyadmin-bundle/src/Form/Type/FileUploadType.php:154)
at EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType->{closure:EasyCorp\Bundle\EasyAdminBundle\Form\Type\FileUploadType::configureOptions():142}()
(vendor/symfony/options-resolver/OptionsResolver.php:1124)
at Symfony\Component\OptionsResolver\OptionsResolver->offsetGet()
(vendor/symfony/options-resolver/OptionsResolver.php:903)
at Symfony\Component\OptionsResolver\OptionsResolver->resolve()
(vendor/symfony/form/ResolvedFormType.php:77)
at Symfony\Component\Form\ResolvedFormType->createBuilder()
(vendor/symfony/form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php:58)
at Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->createBuilder()
(vendor/symfony/form/FormFactory.php:67)
at Symfony\Component\Form\FormFactory->createNamedBuilder()
(vendor/easycorp/easyadmin-bundle/src/Form/Type/CrudFormType.php:112)
at EasyCorp\Bundle\EasyAdminBundle\Form\Type\CrudFormType->buildForm()
(vendor/symfony/form/ResolvedFormType.php:100)
at Symfony\Component\Form\ResolvedFormType->buildForm()
(vendor/symfony/form/Extension/DataCollector/Proxy/ResolvedTypeDataCollectorProxy.php:73)
at Symfony\Component\Form\Extension\DataCollector\Proxy\ResolvedTypeDataCollectorProxy->buildForm()
(vendor/symfony/form/FormFactory.php:75)
at Symfony\Component\Form\FormFactory->createNamedBuilder()
(vendor/easycorp/easyadmin-bundle/src/Factory/FormFactory.php:51)
at EasyCorp\Bundle\EasyAdminBundle\Factory\FormFactory->createNewFormBuilder()
(vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php:560)
at EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController->createNewFormBuilder()
(vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php:555)
at EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController->createNewForm()
(vendor/easycorp/easyadmin-bundle/src/Controller/AbstractCrudController.php:314)
at EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractCrudController->new()
(vendor/symfony/http-kernel/HttpKernel.php:183)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw()
(vendor/symfony/http-kernel/HttpKernel.php:76)
at Symfony\Component\HttpKernel\HttpKernel->handle()
(vendor/symfony/http-kernel/Kernel.php:191)
at Symfony\Component\HttpKernel\Kernel->handle()
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:32)
at require_once('/var/www/SAE301/vendor/autoload_runtime.php')
(public/index.php:5)
|