I had the same problem.
The reason is that in the
vendor\sonata-project\ecommerce\src\ProductBundle\Model\BaseProductProvider.php
,in the buildEditForm() method we have (from row 508):
$formMapper->add('image', 'sonata_type_model_list',
array(
'required' => false,
),
array(
'link_parameters' => array(
'context' => 'product_catalog',
'filter' => array('context' => array('value' =>
'product_catalog')),
'provider' => '', // <--- HERE IS THE PROBLEM!!!!
),
));
Same thing for gallery:
$formMapper->add('gallery', 'sonata_type_model_list',
array(
'required' => false,
),
array(
'link_parameters' => array(
'context' => 'product_catalog',
'filter' => array('context' => array('value' =>
'product_catalog')),
'provider' => '', // <--- HERE IS THE PROBLEM!!!!
),
));
To solve the issue, you can override the buildEditForm() method in your
src\Application\Sonata\ProductBundle\Provider\DummyProductProvider.php as
follow:
public function buildEditForm(FormMapper $formMapper, $isVariation = false)
{
$formMapper->with('Product');
$formMapper->add('enabled');
$formMapper->add('name');
$formMapper->add('sku');
$formMapper
->add('price', 'number')
->add('priceIncludingVat')
->add('vatRate', 'number')
->add('stock', 'integer')
;
if (!$isVariation || in_array('description',
$this->variationFields)) {
$formMapper->add('description', 'sonata_formatter_type',
array(
'source_field' => 'rawDescription',
'source_field_options' => array('attr' => array('class' =>
'span10',
'rows' => 20)),
'format_field' => 'descriptionFormatter',
'target_field' => 'description',
'event_dispatcher' =>
$formMapper->getFormBuilder()->getEventDispatcher(),
));
}
if (!$isVariation || in_array('short_description',
$this->variationFields)) {
$formMapper->add('shortDescription', 'sonata_formatter_type',
array(
'source_field' => 'rawShortDescription',
'source_field_options' => array('attr' => array('class' =>
'span10',
'rows' => 20)),
'format_field' => 'shortDescriptionFormatter',
'target_field' => 'shortDescription',
'event_dispatcher' =>
$formMapper->getFormBuilder()->getEventDispatcher(),
));
}
$formMapper->end();
if (!$isVariation || in_array('image', $this->variationFields) ||
in_array('gallery',
$this->variationFields)) {
$formMapper->with('Media');
if (!$isVariation || in_array('image', $this->variationFields))
{
$formMapper->add('image', 'sonata_type_model_list',
array(
'required' => false,
),
array(
'link_parameters' => array(
'context' => 'product_catalog',
'filter' => array('context' => array('value' =>
'product_catalog')),
'provider' => 'sonata.media.provider.image', //
<--- HERE THE SOLUTION!!!
),
));
}
if (!$isVariation || in_array('gallery',
$this->variationFields)) {
$formMapper->add('gallery', 'sonata_type_model_list',
array(
'required' => false,
),
array(
'link_parameters' => array(
'context' => 'product_catalog',
'filter' => array('context' => array('value' =>
'product_catalog')),
'provider' => 'sonata.media.provider.image', //
<--- HERE THE SOLUTION!!!
),
));
}
$formMapper->end();
}
}
I suggest to you override also the buildCreateForm() method, as follow:
public function buildCreateForm(FormMapper $formMapper)
{
$this->buildEditForm($formMapper);
}
I hope it will help to you! Good luck! ;-)
Il giorno lunedì 6 giugno 2016 21:22:29 UTC+2, Aymeric Wilke ha scritto:
>
> Hi,
>
> I have a very simple (I think) issue.
>
> Han I add or modify a product in the admin side of eCommerce bundle, I
> cannot add an image via the Ajax form :
>
>
> <https://lh3.googleusercontent.com/-7nInvivdYbs/V1XNRJgrs7I/AAAAAAAADj8/lGdZ3zhMDDIaf9FdOsCoMagt9w4M4Ad3ACLcB/s1600/Capture%2Bd%25E2%2580%2599e%25CC%2581cran%2B2016-06-04%2Ba%25CC%2580%2B13.07.42.png>
>
>
> When I click "Add new", the modal window says :
> Select media provider
>
>
> No provider available
>
>
> I think the problem is from the link in the "Add new button". The link is :
> <a
> href="/admin/sonata/media/media/create?*provider=&*context=product_catalog&filter%5Bcontext%5D%5Bvalue%5D=product_catalog&uniqid=s5752b747b03b8&code=sonata.media.admin.media&pcode=sonata.product.admin.product&puniqid=s5752b74755ebf"
>
> ……
>
>
> And if I change it to add the provider like that :
>
> <a href="/admin/sonata/media/media/create?
> *provider=sonata.media.provider.image*&context=product_catalog&filter%5Bcontext%5D%5Bvalue%5D=product_catalog&uniqid=s5752b747b03b8&code=sonata.media.admin.media&pcode=sonata.product.admin.product&puniqid=s5752b74755ebf"
>
> ……
>
> … it works perfect, and shows me the add image form.
>
> Could anyone know what is going on with that link ?
> Many thanks in advance !
>
--
You received this message because you are subscribed to the Google Groups
"sonata-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sonata-users.
For more options, visit https://groups.google.com/d/optout.