我刚刚开始学习Symfony,但已经遇到了一些我无法弄清楚如何解决的问题。
我有一个记录数据库表,可能会也可能不会链接到用户。一个用户可以拥有许多记录,但记录不必与用户相关联
我在yml中使用了doctrine来创建2个表之间的manyToOne关系
user:
targetEntity: User
mappedBy: records
joinColumn:
name: user_id
referencedColumnName: id
当记录有与之关联的用户
时,这非常正常当针对记录的user_id设置为0
时,会出现问题Symfony将其作为用户对象加载,但是当我尝试
时{{ record.user.name }}
在我的twig模板中循环遍历每条记录时,我得到一个抛出的EntityNotFoundException
我尝试过做不同的事情,比如
{% if record.user is null %}
没有运气
我能找到的唯一类似问题是this one
我知道这会解决我的问题,但是当我学习Symfony和Doctrine时,我想知道自己编写SQL是我唯一的选择,还是因为我有什么东西不能使这项工作成功
我想我也可以创建一个id为0的用户,但我想知道应该怎么做而不是做那样脏的事
我的模型执行以下操作来加载记录
$repository = $this->doctrine->getRepository('SiteBundle:Records');
$records = $repository->findAll();
然后将其传递给我的twig模板,该模板循环输出
提前感谢任何输入
答案 0 :(得分:0)
请参阅https://stackoverflow.com/a/17338761/3574819
将user_id
设置为0
,而不是将user_id
的用户设置为null
,而不是将user
设置为defined
。
然后,您可以在访问其属性之前检查{% if records.user is not null %}
{{ records.user.name }}
{% endif %}
对象是否为空(或者您可能需要使用{{1}})。
{{1}}
答案 1 :(得分:0)
你应该试试这个
{% if records.user is not empty %}
{{ records.user.name }}
{% endif %}
代替" null" ,"空"物业在这里很好..