[英]Symfony2 Doctrine manyToOne EntityNotFoundException
我剛剛開始學習Symfony,但是遇到了我不知道如何解決的問題。
我有一個數據庫記錄表,該記錄可能鏈接也可能不鏈接到用戶。 一個用戶可以有很多記錄,但不必將記錄與用戶關聯
我已經將yml與doctrine結合使用,從而在2個表之間創建了ManyToOne關系
user:
targetEntity: User
mappedBy: records
joinColumn:
name: user_id
referencedColumnName: id
當記錄具有與之關聯的用戶時,這絕對可以正常工作
當針對記錄的user_id設置為0時,會發生問題
Symfony將其加載為用戶對象,但是當我嘗試這樣做時
{{ record.user.name }}
在我的樹枝模板中,在遍歷每條記錄時,我拋出了EntityNotFoundException
我嘗試做不同的事情,例如
{% if record.user is null %}
沒有運氣
唯一的類似的問題,我已經能夠找到的是這個
我知道這可以解決我的問題,但是當我學習Symfony和Doctrine時,我想知道是否自己編寫SQL是我唯一的選擇,或者我是否缺少做這項工作的東西
我想我也可以創建一個ID為0的用戶,但我想學習如何做到這一點,而不是做那樣的骯臟的事情
我的模型執行以下操作來加載記錄
$repository = $this->doctrine->getRepository('SiteBundle:Records');
$records = $repository->findAll();
然后將其傳遞到我的樹枝模板,該模板通過它們循環進行輸出
預先感謝您的任何投入
參見https://stackoverflow.com/a/17338761/3574819
相反設置的user_id
沒有用戶的記錄0
,設置user_id
到null
。
然后,您可以在訪問user
對象的屬性之前檢查該user
對象是否為null(或者可能需要使用defined
)。
{% if records.user is not null %}
{{ records.user.name }}
{% endif %}
你應該試試這個
{% if records.user is not empty %}
{{ records.user.name }}
{% endif %}
在這里,“空”屬性可以代替“空”來正常工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.