Я следую документам отсюда http://symfony.com/doc/current/book/doctrine.html и у меня есть проблема.Как связать запись базы данных с объектом
Я создал связь между категорией и моделью продукта. База данных была обновлена правильно, классы моделей имеют правильные методы получения и установки, но если я пытаюсь запустить следующий код:
$product = $this->getDoctrine()->getRepository('AcmeStoreBundle:Product')
->findById(1);
$categoryName = $product->getCategory()->getName();
я получает ошибку:
FatalErrorException: Error: Call to a member function getName() on a non-object in D:\www\Symfony\src\Acme\StoreBundle\Controller\DefaultController.php line 28
Я проверил это и категория класс модели имеет метод getName() и является общедоступным методом.
Мой Product.orm.yml выглядит
Acme\StoreBundle\Entity\Product:
type: entity
manyToOne:
category:
targetEntity: Category
inversedBy: products
joinColumn:
name: category_id
referencedColumnName: id
table: null
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
name:
type: string
length: 255
price:
type: decimal
lifecycleCallbacks: { }
Category.orm.yml
Acme\StoreBundle\Entity\Category:
type: entity
oneToMany:
products:
targetEntity: Product
mappedBy: category
table: null
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
name:
type: string
length: '255'
lifecycleCallbacks: { }
product.php
...
/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;
...
category.php
...
/**
* @ORM\OneToMany(targetEntity="Product", mappedBy="category")
*/
protected $products;
public function __construct() {
$this->products = new ArrayCollection();
}
...
В чем проблема?
Я пробовал разные варианты, но он не работает. 'FatalErrorException: Ошибка: вызов функции-члена getCategory()' – deem
Почему у вас есть эти файлы '* .orm.yml'? И вы уверены, что у продукта 1 есть категория? –
Я использовал консольные команды, и тогда он был сгенерирован. BTW docs ничего не говорит о 'getManager()' (http://symfony.com/doc/current/book/doctrine.html) – deem