kdyby/Doctrine INSERT dat

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kloban
Člen | 123
+
0
-

Ahoj snažím se udělat INSERT do DB pomocí doctrine. Postupuji podle návodu https://github.com/…/en/index.md konkrétně podle

$article = new Article();
$article->title = "The Tigger Movie";

$entityManager->persist($article); // start managing the entity
$entityManager->flush(); // save it to the database

Nedaří se mi data vložit. Laděnka vypisuje Cannot write to an undeclared property App\entities\Product::$title.

Jak tedy jendoduše udělat INSERT pomocí doctrine2?
Díky Dan

Šaman
Člen | 2666
+
0
-

No a jak vypadá tvoje entita Product? Chyba bude v ní.

kloban
Člen | 123
+
0
-

Entita Product vypadá takto:

<?php
namespace App\entities;

use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 */
class Product extends \Kdyby\Doctrine\Entities\BaseEntity{
     /**
     * @ORM\Id
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue
     */
    private $id;

    /**
     * @ORM\Column(type="string")
     */
    private $title;

    /**
     * @ORM\Column(type="string", length=1024)
     */
    private $subtitle;

    /**
     * @ORM\Column(type="string", length=4096)
     */
    private $description;

    /**
     * @ORM\Column(type="string")
     */
    private $image;

    /**
     * @ORM\Column(type="integer")
     */
    private $price;

    /**
     * @ORM\Column(type="integer")
     */
    private $number_of_stock;

    /**
     * @ORM\Column(type="smallint")
     */
    private $state;

    /**
     * @ORM\Column(type="boolean")
     */
    private $active;
}
chap
Člen | 81
+
0
-

imho vlastnosti musí být protected … a v anotaci možná dodat: @ORM\Table(name="TABULKA")

Editoval chap (5. 5. 2015 22:15)

kloban
Člen | 123
+
0
-

Ano, vlastnost musela být protected. Díky již to funguje.

Oli
Člen | 1215
+
0
-

@chap @ORM\Table(name="TABULKA") je potřeba jen když se název tabulky liší od názvu entity.

Marek Šneberger
Člen | 130
+
0
-

Může být private, ale budeš si na to muset napsat setter :-)