Backend Listing: Fehler beim Aufrufen der Detailseite

Hallo liebe Leute,

ich hänge gerade bei meinem Backendplugin. Ich hab ein funktionierendes Listung und möchte nun über den Bearbeiten Stift die Detailseite aufrufen.
Hab soweit alles nach DevDocs Tutorial gemacht, bekomme nun aber folgende Fehlermeldung:

Fatal error: Uncaught exception 'Doctrine\ORM\Query\QueryException' with message 'SELECT kollege FROM Shopware\CustomModels\Kollegen\Kollege kollege WHERE kollege.id = :id' 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 kommune ...') #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->processDeferredPathExpressions(Object(Doctrine\ORM\Query\AST\SelectStatement)) #3 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Parser.php(351): Doctrine\ORM\Query\Parser->getAST() #4 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(281): Doctrine\ORM\Query\Parser->parse() #5 /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query.php(293) in /html/shopware/vendor/doctrine/orm/lib/Doctrine/ORM/Query/QueryException.php on line 63 503 Service Unavailable

Ich vermute den Fehler irgendwo in meinem Model, bin aber irgendwie zu blöd oder zu blind um ihn zu finden. Hier auch gleich das dazugehörige Model…

namespace Shopware\CustomModels\Kollegen;

use Shopware\Components\Model\ModelEntity;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="kb_kollegen")
 */
class Kollege extends ModelEntity
{
    /**
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     */
    private $k_id;

    /**
     *
     * @ORM\Column(name="k_zip", type="integer", nullable=false)
     */
    private $k_zip = 0;

    /**
     * @ORM\Column(name="k_label", type="string", length=30, nullable=false)
     */
    private $k_label = '';

    /**
     * @ORM\OneToMany(
     * targetEntity="Shopware\CustomModels\Kollegen\Bonus",
     * mappedBy="kollege"
     * )
     *
     */
    protected $k_bonus;

    /**
     * Returns the unique identifier "id"
     *
     * @return integer
     */
    public function getId()
    {
        return $this->k_id;
    }

    /**
     * Returns the ZIP Code
     *
     * @return integer
     */
    public function getZip()
    {
        return $this->k_zip;
    }
 
    /**
     * Returns the label
     *
     * @return string
     */
    public function getLabel()
    {
        return $this->k_label;
    }

    public function __construct()
    {
        $this->k_bonus = new ArrayCollection();
    }
}

Über sachdienliche Hinweise wäre ich sehr dankbar!

Martin

In deinem Model steht es doch drinne XD - kenn ich aber das ‚den Wald vor lauter Bäumen nicht sehen‘.

Du rufst die Detailseite über einen Doctrine Query Builder auf. Dort holst du dir dein Model und selectest anhand der id.

In deinem Model steht jedoch, dass die Datenbankspalte id auf die Modelproperty $k_id gemapped wird.

D.h. in deinem Where-Statement musst du (wenn du das Model als Grundlage für das Select nimmst) auch die Property kollege.k_id prüfen.

1 „Gefällt mir“

Wie recht du hast! Sowohl mit der Antwort als auch mit dem Wald :wink: