我有两张与ORM
无关的表格,所以我按以下方式执行JOIN
:
$dql="SELECT u, o
FROM BackendBundle:Orders o
JOIN BackendBundle:Users u
WITH o.userid=u.id";
$query=$em->createQuery($dql);
当我将查询发送到twig以在屏幕上显示时,它会显示错误。
这是twig
中的代码:
{% for ordenes in pagination %}
<td>{{ ordenes.orderid }}</td>
<td>{{ ordenes.orderdate|date("Y-m-d") }}</td>
{% endfor %}
错误是这样的:
财产&#34; orderid&#34;也不是其中一种方法&#34; orderid()&#34;, &#34; getorderid()&#34; /&#34; isorderid()&#34;或&#34; __ call()&#34;存在并公开 在课堂上访问&#34; BackendBundle \ Entity \ Users&#34;
如果我运行twig
此代码:
{{dump(pagination)}}
它正确显示了查询返回的内容:
#currentPageNumber: 3
#numItemsPerPage: 20
#items: array:40 [▼
0 => Orders {#522 ▼
-orderid: 158
-orderdate: DateTime {#476 ▶}
-ordernumber: "FFFFFFFFFFF"
-customername: "UUUUUUUUUUUU"
-customeraddress: "OOOOOO"
-countrycode: "US"
-shippingaddress: "PPPPPP"
-status: "Ordered"
-subtotal: "5.00"
-shippingcost: "2.82"
-tax: "0.00"
-discount: "0.00"
-totalorder: "7.82"
-shippingcarrier: "Fedex"
-userid: "1206"
}
1 => Users {#525 ▼
-id: 1206
-username: "xxxxxxxxxxxxxx@hotmail.com"
-yourname: null
-firstname: "GGGG"
-lastname: "IIIIII"
-middlename: ""
-address: "oooooooooo"
-address2: ""
-apartment: ""
-pobox: ""
-city: "Monsey"
-state: "NY"
-zipcode: "88888888"
-country: "USA"
-countrycode: "US"
-email: "xxxxxxxxxxx@hotmail.com"
-datein: DateTime {#521 ▶}
}
我的问题是如何在树枝上显示这个结果?
答案 0 :(得分:0)
审核并尝试解决此问题。最后以这种方式在文件中和两个表之间创建关系:
//BackendBundle\Entity\Orders:
indexes:
fk_order_user1_idx:
columns:
- user_id
......
manyToOne:
user:
targetEntity: Users
cascade: { }
fetch: LAZY
mappedBy: null
inversedBy: null
joinColumns:
user_id:
referencedColumnName: id
orphanRemoval: false
同样在实体中:
//Orders.php
/**
* @var \BackendBundle\Entity\Users
*/
private $user;
......
/**
* Set user
*
* @param \BackendBundle\Entity\Users $user
*
* @return Users
*/
public function setUser(\BackendBundle\Entity\Users $user = null)
{
$this->user = $user;
return $this;
}
/**
* Get user
*
* @return \BackendBundle\Entity\Users
*/
public function getUser()
{
return $this->user;
}
我更新了数据库:
php bin/console doctrine:schema:update --force
我以这种方式进行查询:
$dql="SELECT u, o
FROM BackendBundle:Orders o
JOIN o.user u";
$query=$em->createQuery($dql);