[英]Symfony2 Delete Record Entity Issue
我要從表中刪除記錄時遇到Symfony2的問題。
我有一個存儲以下內容的表:purchaseOrders,purchaseOrderItems和倉庫
采購訂單實體“ purchaseOrders”
id|name |
-----------
1 |Test |
倉庫實體“倉庫”
id|name |
---------------------
1 |Test Warehouse |
2 |Test Warehouse 2 |
采購訂單表項目實體“ purchaseOrderItems”
id|name |purchaseOrder_id|warehouse_id
--------------------------------
1 |Test Item 1 |1 |1
2 |Test Item 2 |1 |1
3 |Test Item 3 |1 |2
purchaseOrder_id是鏈接到名為“ purchaseOrders”的表的多對一關系。 Warehouse_id是鏈接到稱為“倉庫”的表的多對一關系。
我的view.html.twig頁面有點像這樣布局:
PurchaseOrder
--------------------------------------
| | Item | Warehouse
--------------------------------------
|1| Test Item 1 | Test Warehouse
|2| Test Item 2 | Test Warehouse
|3| Test Item 3 | Test Warehouse 2
如果我從“倉庫”表中刪除記錄#1,則會在此view.html.twig模板中收到錯誤消息
An exception has been thrown during the rendering of a template ("Entity was not found.") in /Applications/XAMPP/xamppfiles/htdocs/symfonydev/src/WIC/PurchaseOrderBundle/Resources/views/PurchaseOrder/view.html.twig at line 320.
問題是因為當樹枝模板嘗試訪問倉庫“名稱”時,無法在對象中找到它來呈現它。
我已經嘗試了以下條件語句,但沒有任何效果,我仍然遇到相同的錯誤:
{% if purchaseOrderItems.warehouses.name != null %}
{{ purchaseOrderItems.warehouses.name }}
{% endif %}
{% if purchaseOrderItems.warehouses.name is defined %}
{{ purchaseOrderItems.warehouses.name }}
{% endif %}
{% if purchaseOrderItems.warehouses.name is not null %}
{{ purchaseOrderItems.warehouses.name }}
{% endif %}
我需要知道的是:
當我刪除“倉庫”時,我該如何做,以使與“倉庫”的“ purchaseOrderItems”關系不會中斷或將Null或0放入值中。
問題必須是因為記錄已被刪除,所以purchaseOrderItems無法建立到倉庫的映射。
請幫助或建議我需要做些什么來防止這種情況的發生。
非常感謝!
第一個錯誤,樹枝錯誤,應該這樣寫
{% if purchaseOrderItems.warehouses %}
{{ purchaseOrderItems.warehouses.name }}
{% endif %}
然后你的問題:
我沒有一種學說可以自動做到的方式。
因此,當您刪除一個倉庫時,只需將PurchaseOrder中的倉庫設置為null。 畢竟,這是一個壞主意,您會弄亂數據。
與其嘗試在Twig中訪問Warehouses.name,不如嘗試使用leftJoin創建一個QueryBuilder:
$q = $repository->createQueryBuilder('p', 'w')->leftJoin('p.warehouse', 'w');
$columns = array('p.id', 'p.name', 'w.name as warehouse');
$products = $q->select($columns)->getQuery()->getResult();
然后,您應該如預期的那樣獲得NULL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.