# getSupplierListQueryBuilder um attribute erweitern

**URL:** <https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352>\
**Category:** Programmierung\
**Created:** [9. März 2017 um 11:31 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352 "2017-03-09T11:31:35Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [9. März 2017 um 11:31 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/1 "2017-03-09T11:31:35Z")

</div>

Ich muss den QueryBuilder der Helper Funktion für Supplier erweitern, damit ich die Attribute Felder im Backendlisting ausgeben kann.

&nbsp;

```
public function getSupplierQuery(Enlight_Hook_HookArgs $args)
    {
        $builder = $args->getReturn();
        $builder->addSelect(
            array(
                'attribute.md_contact as md_contact',
                'attribute.md_fon as md_fon',
                'attribute.md_email as md_email'));

        $builder->LeftJoin('supplier.attribute', 'attribute');
        $args->setReturn($builder);
    }

```

Was ist hier falsch ?

Ich habe keinen Zugriff auf die Attributes Felder im Listing ![](http://www.megadruck.de/Unbenannt-1.png)

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [20. März 2017 um 12:53 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/2 "2017-03-20T12:53:05Z")

</div>

Niemand ne Idee ? Ich bekomm immer ne Doctrine Exception.

Der Fehler lautet:

Fatal error: Uncaught exception ‘Doctrine\ORM\Query\QueryException’ with message ‘SELECT supplier.id as id, supplier.name as name, supplier.image as image, supplier.link as link, supplier.description as description, COUNT(articles.id) as articleCounter, attribute.md\_contact as md\_contact, attribute.md\_fon as md\_fon, attribute.md\_email as md\_email FROM Shopware\Models\Article\Supplier supplier LEFT JOIN supplier.articles articles LEFT JOIN supplier.attribute attribute GROUP BY supplier.id ORDER BY name ASC’ in /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php:41 Stack trace: #0 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(483): Doctrine\ORM\Query\QueryException::dqlError(‘SELECT supplier…’) #1 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(759): Doctrine\ORM\Query\Parser-\>semanticalError(‘Class Shopware\…’, Array) #2 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(279): Doctrine\ORM\Query\Parser-\>processDeferredPathExpression in /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 63 503 Service Unavailable

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [20. März 2017 um 12:56 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/3 "2017-03-20T12:56:36Z")

</div>

Entsprechend gesetzt wurden auch die Attributes Felder

&nbsp;

```
//{block name="backend/supplier/model/attribute/fields" append}

{ name : 'md_fon', type : 'string' },
{ name : 'md_email', type : 'string' },
{ name : 'md_contact', type : 'string' },
//{/block}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [30. März 2017 um 17:13 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/4 "2017-03-30T17:13:11Z")

</div>

hi

&nbsp;

kann hier keiner helfen ?

---

<div class="post-metadata">

**Author:** ![MrMDeluxe](https://avatars.discourse-cdn.com/v4/letter/m/4da419/32.png) [@MrMDeluxe](https://forum.shopware.com/u/MrMDeluxe)\
**Post date:** [31. März 2017 um 06:30 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/5 "2017-03-31T06:30:55Z")

</div>

Hallo Megadruck,

in der Shopware Doku steht doch:

> **Attention** : Although the field names are defined in snake\_case when created using the CRUD-service, you need to use camelCase in name attributes.

Schau Dir mal Dein ArticleSupplier Attribut Model an. Hier müssten deine Attribute alle im CamelCase stehen.

Also im Query Builder einfach folgendes selektieren:

```
$builder->addSelect(
            array(
                'attribute.mdContact as md_contact',
                'attribute.mdFon as md_fon',
                'attribute.mdEmail as md_email'));

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [31. März 2017 um 06:33 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/6 "2017-03-31T06:33:17Z")

</div>

Habe ich auch schon gelesen und getestet. Hat auch nichts gebracht. Oder meinste, dass die in der DB auch so angelegt werden müssen ?

---

<div class="post-metadata">

**Author:** ![sschreier](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sschreier/32/23296_2.png) [@sschreier](https://forum.shopware.com/u/sschreier)\
**Post date:** [31. März 2017 um 07:04 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/7 "2017-03-31T07:04:26Z")

</div>

> [@megadruck schrieb:](https://forum.shopware.com/profile/23722/megadruck "megadruck")
> 
> Habe ich auch schon gelesen und getestet. Hat auch nichts gebracht. Oder meinste, dass die in der DB auch so angelegt werden müssen ?

Hallo,

versuch es mal eher so:

```
//{block name="backend/supplier/model/attribute/fields" append}
{ name : 'mdFon', type : 'string' },
{ name : 'mdEmail', type : 'string' },
{ name : 'mdContact', type : 'string' },
//{/block}

```

und:

```
$builder = $args->getReturn();

$builder->addSelect(
     array(
          'attribute.mdContact as md_contact',
          'attribute.mdFon as md_fon',
          'attribute.mdEmail as md_email'
     )
);

$builder->LeftJoin('supplier.attribute', 'attribute');

$args->setReturn($builder);

```

Beste Grüße

Sebastian

---

<div class="post-metadata">

**Author:** ![MrMDeluxe](https://avatars.discourse-cdn.com/v4/letter/m/4da419/32.png) [@MrMDeluxe](https://forum.shopware.com/u/MrMDeluxe)\
**Post date:** [31. März 2017 um 07:06 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/8 "2017-03-31T07:06:18Z")

</div>

Also wie hast Du die Attribute denn angelegt?

Via Crud Service oder über die Freitextfeld Verwaltung im Backend oder direkt auf der DB?

Wie sind deine Attribute denn im Model definiert?

Schau mal unter var/cache/production\_2017…/doctrine/attributes/ArticleSupplier.php und poste mal die Definition Deiner Attribute.

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [31. März 2017 um 07:07 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/9 "2017-03-31T07:07:39Z")

</div>

Das hatte ich auch schon in betracht gezogen und getestet. Leider hatte sich da nichts geändert.

Aber ich werde es mir jetzt nochmal anschauen

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [31. März 2017 um 07:30 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/10 "2017-03-31T07:30:17Z")

</div>

Da dieser immer abbricht mit dem Fehler ist, wird im cache auch nichts angelegt.

&nbsp;

![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/b/b10de788a4ac7ba8158dd1e01db9bdcdaaf69e0b.png)

&nbsp;

&nbsp;

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/1/142e7f52a9e9d75dc1da6185b7bdd69e8d229d3a.png)

---

<div class="post-metadata">

**Author:** ![MrMDeluxe](https://avatars.discourse-cdn.com/v4/letter/m/4da419/32.png) [@MrMDeluxe](https://forum.shopware.com/u/MrMDeluxe)\
**Post date:** [31. März 2017 um 07:43 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/11 "2017-03-31T07:43:56Z")

</div>

Für mich sieht es so aus, dass die Attribute nicht im Model vorhanden sind.

Du hast anscheinend immer noch nicht in der ArticleSupplier.php nachgeschaut?!

Falls Du die Attribute dort nicht findest, einfach mal die Models neu generieren.

Am besten via SSH ./console sw:generate:attributes

Backend neu laden und fertig!

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [31. März 2017 um 08:53 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/12 "2017-03-31T08:53:40Z")

</div>

Jetzt wurde das MOdel generiert.

Fehler war:

```
       $this->get('models')->generateAttributeModels(
            array(
                's_order_attributes',
                 's_articles_supplier_atributes'
            )

```

Wer siehts&nbsp; ? 🙂

&nbsp;

Nicht desto trotz gibt es keine Ausgabe. Da muss ich mal weiterschauen.

&nbsp;

```
class ArticleSupplier extends ModelEntity
{
    

    /**
     * @var integer $id
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     * @ORM\Column(name="id", type="integer", nullable=false)
     */
     protected $id;

    /**
     * @var integer $articleSupplierId
     *
     * @ORM\Column(name="supplierID", type="integer", nullable=true)
     */
     protected $articleSupplierId;

    /**
     * @var string $mdFon
     *
     * @ORM\Column(name="md_fon", type="string", nullable=true)
     */
     protected $mdFon;

    /**
     * @var string $mdEmail
     *
     * @ORM\Column(name="md_email", type="string", nullable=true)
     */
     protected $mdEmail;

    /**
     * @var string $mdContact
     *
     * @ORM\Column(name="md_contact", type="string", nullable=true)
     */
     protected $mdContact;

    /**
     * @var \Shopware\Models\Article\Supplier
     *
     * @ORM\OneToOne(targetEntity="Shopware\Models\Article\Supplier", inversedBy="attribute")
     * @ORM\JoinColumns({
     * @ORM\JoinColumn(name="supplierID", referencedColumnName="id")
     * })
     */
    protected $articleSupplier;
    

    public function getId()
    {
        return $this->id;
    }

    public function setId($id)
    {
        $this->id = $id;
        return $this;
    }
    

    public function getArticleSupplierId()
    {
        return $this->articleSupplierId;
    }

    public function setArticleSupplierId($articleSupplierId)
    {
        $this->articleSupplierId = $articleSupplierId;
        return $this;
    }
    

    public function getMdFon()
    {
        return $this->mdFon;
    }

    public function setMdFon($mdFon)
    {
        $this->mdFon = $mdFon;
        return $this;
    }
    

    public function getMdEmail()
    {
        return $this->mdEmail;
    }

    public function setMdEmail($mdEmail)
    {
        $this->mdEmail = $mdEmail;
        return $this;
    }
    

    public function getMdContact()
    {
        return $this->mdContact;
    }

    public function setMdContact($mdContact)
    {
        $this->mdContact = $mdContact;
        return $this;
    }
    

    public function getArticleSupplier()
    {
        return $this->articleSupplier;
    }

    public function setArticleSupplier($articleSupplier)
    {
        $this->articleSupplier = $articleSupplier;
        return $this;
    }
    
}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![megadruck](https://avatars.discourse-cdn.com/v4/letter/m/f17d59/32.png) [@megadruck](https://forum.shopware.com/u/megadruck)\
**Post date:** [31. März 2017 um 09:36 UTC](https://forum.shopware.com/t/getsupplierlistquerybuilder-um-attribute-erweitern/44352/13 "2017-03-31T09:36:08Z")

</div>

Jetzt geht alles. Danke für Eure Hilfe
