j'ai deux entités Ventės et de l'article avec plusieurs à plusieurs et dans la relation de l'entité est ventes_article qui ont le attribut « Quantite »:Beaucoup à beaucoup d'attributs (sonata_type_collection) dans le faisceau d'administration sonate
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Ventes
*
* @ORM\Table(name="ventes")
* @ORM\Entity(repositoryClass="AppBundle\Repository\VentesRepository")
*/
class Ventes
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
#......................
/**
* Many Articles have Many paks.
* @ORM\ManyToMany(targetEntity="Article", inversedBy="Ventes")
* @ORM\JoinTable(name="ventes_article")
*/
private $articles;
/**
* Add article
*
* @param \AppBundle\Entity\Article $article
*
* @return Ventes
*/
public function addArticle(\AppBundle\Entity\Article $article)
{
$this->articles[] = $article;
return $this;
}
/**
* Remove article
*
* @param \AppBundle\Entity\Article $article
*/
public function removeArticle(\AppBundle\Entity\Article $article)
{
$this->articles->removeElement($article);
}
/**
* Get articles
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getArticles()
{
return $this->articles;
}
#.............................
#..........
}
et ceci est mon entité article:
<?php
namespace AppBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Article
*
* @ORM\Table(name="article")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ArticleRepository")
*/
class Article
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* Many packs have Many article.
* @ORM\ManyToMany(targetEntity="Ventes", mappedBy="Article")
* @ORM\JoinTable(name="ventes_article")
*/
private $ventes;
public function __construct() {
$this->ventes = new \Doctrine\Common\Collections\ArrayCollection();
$this->packs = new \Doctrine\Common\Collections\ArrayCollection();
}
#/............
/**
* Add vente
*
* @param \AppBundle\Entity\Ventes $vente
*
* @return Article
*/
public function addVente(\AppBundle\Entity\Ventes $vente)
{
$this->ventes[] = $vente;
return $this;
}
/**
* Remove vente
*
* @param \AppBundle\Entity\Ventes $vente
*/
public function removeVente(\AppBundle\Entity\Ventes $vente)
{
$this->ventes->removeElement($vente);
}
/**
* Get ventes
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getVentes()
{
return $this->ventes;
}
}
et dans ma classe Ventesadmin j'ai:
<?php
namespace AppBundle\Admin;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Sonata\AdminBundle\Route\RouteCollection;
class VentesAdmin extends AbstractAdmin
{
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('Acticles', array('class' => 'col-md-12'))
->add('articles', 'sonata_type_model', array(
'class' => 'AppBundle\Entity\Article',
'property' => 'reference',
'multiple' => true,
'required' => false,
))
->end()
;
}
protected function configureDatagridFilters(DatagridMapper $datagridMapper)
{
}
protected function configureListFields(ListMapper $listMapper)
{
}
protected function configureShowFields(ShowMapper $showMapper)
{
}
}
en résultat:
mais je veux montrer ce résultat avec Costum attributs de même article:
pouvez-vous me aider ??
ne suis pas sûr Sonata, mais Symfony et Doctrine ne sont pas construites pour cela (utilisez plutôt STH comme Ventes <-> VentesArticle (entité propre) <-> article) – kero
Je l'utilise (VentesArticle) –
Non, vous avez un ManyToMany entre Ventes et Article, vous auriez besoin de ManyToMany entre Ventes et Article de Vente et ManyToMany entre VentesArticle et Article. Mais je n'ai aucune expérience avec Sonata, donc je ne suis pas le meilleur pour aider – kero