我有一個頁面address.html.twig,用戶可以在表UserAddress中添加許多地址。當他在數據庫中添加他的地址時,應該在他添加地址的同一頁面中呈現地址,然後他可以選擇他想使用的地址。不幸的是地址不是渲染。學說和Symfony2:協會是指不存在的反面錯誤
首先,我以爲我的控制器操作或我的樹枝頁面有問題。我甚至在這裏問了一個問題吧=>here
我驗證了我的所有表中的phpmyadmin和所有的人都是很好的鏈接,但如果我這樣做:PHP應用程序/控制檯學說:架構:驗證 我有這個錯誤:
[映射] FAIL - 實體級 'FLY \ BookingsBundle \實體\ Commandes' 映射無效: *的關聯FLY \ BookingsBundle \實體\ Commandes#用戶指逆側場 Application \ Sonata \ UserBundle \ Entity \ User#commandes其中不存在 存在。
[映射] FAIL - 實體級 'FLY \ BookingsBundle \實體\ UserAddress' 映射無效: *的關聯FLY \ BookingsBundle \實體\ UserAddress#用戶指逆側場 應用\奏\ UserBundle \ Entity \ User#地址不存在 。
看一看這樣的畫面:
這是我UserAddress.php
/**
* @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="address")
* @ORM\JoinColumn(nullable=true)
*/
private $user;
Commandes.php
/**
* @ORM\ManyToOne(targetEntity="Application\Sonata\UserBundle\Entity\User", inversedBy="commandes")
* @ORM\JoinColumn(nullable=true)
*/
private $user;
user.php的
/**
* @ORM\Entity(repositoryClass="FLY\UserBundle\Repository\UserRepository")
* @ORM\Table(name="fos_user_user")
*/
class User extends BaseUser
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
public function __construct()
{
parent::__construct();
$this->commandes = new \Doctrine\Common\Collections\ArrayCollection();
$this->address = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* @ORM\OneToMany(targetEntity="FLY\BookingsBundle\Entity\Commandes", mappedBy="user", cascade={"remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $commandes;
/**
* @ORM\OneToMany(targetEntity="FLY\BookingsBundle\Entity\UserAddress", mappedBy="user", cascade={"remove"})
* @ORM\JoinColumn(nullable=true)
*/
private $address;
在這裏你可以看到我的VAR轉儲:
User {#124 ▼
#id: 21
-commandes: null
-address: null
}
這可能是一個命名空間錯誤。用戶如何擁有@ORM \ Entity(repositoryClass =「FLY \ UserBundle \ Repository \ UserRepository」)的存儲庫類,但根據Commandes,用戶實體位於Application \ Sonata \ UserBundle \ Entity \ User中 - 在單獨的包中生成。徹底檢查你的映射是否指向你實體的正確命名空間。 – Richard