簡體   English   中英

Symfony2學說manyToOne EntityNotFoundException

[英]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_idnull

然后,您可以在訪問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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM