2017-06-29 9 views
1

このエラーが発生しており、解決方法がわかりません。アイデアは、ユーザーのすべての書籍を一覧表示することです。ユーザーのIDで呼び出されたときのパスは、たとえばuserbooks/4のようにうまくいきます。ユーザ名userbooks/paulでこのエラーが表示される "null変数の属性(" user ")にアクセスすることはできません。null変数の属性( "user")にアクセスすることができません

<h2 > <a href="{{ path('userbooks',{'user' : entry.user}) }} ">{{ entry.title | title }}</a></h2>  

viewuserbookAction:

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]); 

} 

{% 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+ 
+0

これは、Book Entityがユーザー名ではなくユーザー経由でユーザーに接続している可能性があります。 –

+0

コードスニペットにはたくさんの 'user'変数があります。このエラーの原因はどこですか? – DonCallisto

+0

@DonCallisto this path {{path( 'userbooks'、{'user':entry.user})}}がusername変数を指しています。代わりにユーザーIDを指すように変更することは可能ですか? – Suleiman

答えて

0

viewuserbook.html.twig回答とヘルプありがとうございました。今は完璧に動作します。ユーザ名で検索しました

viewuserbookAction:

public function viewuserbooksAction($username) 
{ 
    $em = $this->getDoctrine()->getManager(); 

    $book = $em->getRepository('UserBundle:User')->find($username); 

    return $this->render('@BookReviewBook/Book/viewuserbooks.html.twig', 
     ['user' => $book]); 

} 

viewuserbook.html.twig

{% extends '@BookReviewBook/layout.html.twig' %} 
{% block title %}{% endblock %} 


{% block body %} 


{% for book in 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> 

    {% endfor %} 

    {% endblock %} 

のrouting.yml

userbooks: 
    path: /userbooks/{username} 
    defaults: { _controller: BookReviewBookBundle:User:viewuserbooks } 

<h2 > <a href="{{ path('userbooks',{ username : entry.user.id}) }} ">{{ 
    entry.title | title }}</a></h2> 
index.html.twig
関連する問題