【发布时间】:2017-12-02 17:23:48
【问题描述】:
我收到此错误,无法弄清楚如何解决它。这个想法是列出用户的所有书籍。使用用户 ID 调用时的路径可以正常工作,例如:userbooks/4。但使用用户名 userbooks/paul 调用我收到此错误“无法访问空变量上的属性(“用户”)。”
<h2 > <a href="{{ path('userbooks',{'user' : entry.user}) }} ">{{ entry.title | title }}</a></h2>
查看用户手册操作:
public function viewuserbooksAction($user)
{
$em = $this->getDoctrine()->getManager();
$book = $em->getRepository('BookReviewBookBundle:Book')->find($user);
return $this->render('@BookReviewBook/Book/viewuserbooks.html.twig',
['book' => $book]);
}
viewuserbook.html.twig
{% extends '@BookReviewBook/layout.html.twig' %}
{% block title %}{% endblock %}
{% block body %}
{% for book in book.user.entries %}
<h1>{{ book.title }} </h1>
<div>
<img class="img-valign" src="{{ asset('images/book/'~ book.path ) }}" , style
= "width:300px;height:300px;" class="img-thumbnail " />
<span class="text2">{{ book.author }}</span>
{{ book.averageRating |rating }}
</div>
<hr class="style4">
<p>{{ book.summary|nl2br }} </p>
<p><small>Posted by {{ book.user }} on {{ book.timestamp|date('H:i d/m/y') }}
</small>
</p>
<hr class="style4">
{% endfor %}
routing.yml
userbooks:
path: /userbooks/{user}
defaults: { _controller: BookReviewBookBundle:User:viewuserbooks }
view:
path: /view/{id}
defaults: { _controller: BookReviewBookBundle:Book:view }
requirements:
id: \d+
【问题讨论】:
-
这可能是因为您的图书实体通过 ID 而不是用户名与用户建立了连接。
-
您的代码 sn-p 中有很多
user变量。导致此错误的确切原因在哪里? -
@DonCallisto 此路径 {{ path('userbooks',{'user' : entry.user}) }} 指向用户名变量。是否可以将其更改为指向用户 ID?
-
是的,只需输入
entry.id而不是entry.user -
什么条目?您没有任何入口变量。只需在渲染控制器的方法中传递它
标签: php symfony doctrine entity