1. Go to this page and download the library: Download gbenitez/attribute-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
gbenitez / attribute-bundle example snippets
" "gbenitez/attribute-bundle": "dev-master"
}
public function registerBundles()
{
$bundles = array(
new gbenitez\Bundle\AttributeBundle\AttributeBundle(),
new Knp\Bundle\PaginatorBundle\KnpPaginatorBundle(),
);
...
}
namespace AppBundle\Entity;
use gbenitez\Bundle\AttributeBundle\Entity\AbstractAttributeValue;
use gbenitez\Bundle\AttributeBundle\Entity\Attribute;
use gbenitez\Bundle\AttributeBundle\Model\AttributeTypes;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* AttributeValues
*
* @ORM\Table(name="attribute_value_target_entity")
* @ORM\Entity
*/
class AttributeValueTargetEntity extends AbstractAttributeValue
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="gbenitez\Bundle\AttributeBundle\Entity\Attribute")
* @Assert\NotBlank()
*/
protected $attribute;
/**
* @var array
*
* @ORM\Column(name="value", type="array", length=255, nullable=true)
*/
protected $value;
/**
* @var string
*
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\TargetEntity")
* @Assert\NotBlank()
*/
private $targetEntityAttribute;
/**
* AttributeValueCompany constructor.
*
* @param string $attribute
* @param string $targetEntityAttribute
*/
public function __construct(Attribute $attribute = null, TargetEntity $targetEntityAttribute = null)
{
$this->attribute = $attribute;
$this->targetEntityAttribute = $targetEntityAttribute;
}
public function __toString()
{
return json_encode($this->value);
}
/**
* Get id
*
* @return integer
*/
public function getId()
{
return $this->id;
}
/**
* {@inheritdoc}
*/
public function getName()
{
$this->assertAttributeIsSet();
return $this->attribute->getName();
}
/**
* {@inheritdoc}
*/
public function getPresentation()
{
$this->assertAttributeIsSet();
return $this->attribute->getPresentation();
}
/**
* {@inheritdoc}
*/
public function getType()
{
$this->assertAttributeIsSet();
return $this->attribute->getType();
}
/**
* {@inheritdoc}
*/
public function getConfiguration()
{
$this->assertAttributeIsSet();
return $this->attribute->getConfiguration();
}
/**
* @throws \BadMethodCallException When attribute is not set
*/
protected function assertAttributeIsSet()
{
if (null === $this->attribute) {
throw new \BadMethodCallException('The attribute is undefined, so you cannot access proxy methods.');
}
}
/**
* @param Attribute $attribute
*/
public function setAttribute(Attribute $attribute)
{
$this->attribute = $attribute;
}
/**
* @return string
* @return \AppBundle\Entity\TargetEntity
*/
public function getTargetEntityAttribute()
{
return $this->targetEntityAttribute;
}
/**
* Get targetEntityAttribute
*
* @return \AppBundle\Entity\TargetEntity
*/
public function setTargetEntityAttribute(\AppBundle\Entity\TargetEntity $targetEntityAttribute)
{
$this->targetEntityAttribute = $targetEntityAttribute;
return $this;
}
}
/**
* @var Assert\Collection
*
* @ORM\OneToMany(
* targetEntity="AppBundle\Entity\AttributeValueTargetEntity",
* mappedBy="targetEntityAttribute",
* cascade={"all"},
* orphanRemoval=true
* )
* @Assert\Valid
*/
private $attributes;
/**
* Constructor
*/
public function __construct()
{
$this->attributes = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add attributes
*
* @param \AppBundle\Entity\AttributeValueTargetEntity $attributes
*
* @return TargetEntity
*/
public function addAttributes(\AppBundle\Entity\AttributeValueTargetEntity $attributes)
{
$this->attributes[] = $attributes;
$attributes->setTargetEntityAttribute($this);
return $this;
}
/**
* Remove attributes
*
* @param \AppBundle\Entity\AttributeValueTargetEntity $attributes
*/
public function removeAttributes(\AppBundle\Entity\AttributeValueTargetEntity $attributes)
{
$this->attributes->removeElement($attributes);
$attributes->setTargetEntityAttribute(null);
}
/**
* Get attributes
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAttributes()
{
return $this->attributes;
}