表示されるページに応じて異なるナビゲーションバーを反映する必要があるいくつかの小枝ファイルがあります。私は、いくつかのルートを変更してユーザーIDを含むまで、私のbase.htmlのif文でうまくいきました。たとえば、/ user/id/detailsでなければなりません。ベースhtmlはどんなユーザなのかわからないので、navbarをどのユーザであるか知っている別の小枝に移動しようとしましたが、表示されません。誰もがどんな方向を提案することができますか?私はSymfonyでかなり新しいです。ありがとうございました!ここで小枝ブロックが動作しない
がコードです... Base.html
{% block heading %}
<div class="main-heading" id="main-heading">
<div class="main-logo">
<img src="{{ asset('images/Dashboard-Logo.png') }}">
</div>
{% if '/admin/' in app.request.uri %}
<nav class="navbar navbar-default">
<!-- /navbar-header -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#">Manage Users <span class="sr-only">(current)</span></a></li>
<li><a href="{{ path('manage_groups') }}">Manage Groups</a></li>
<li><a href="{{ path('export_test_data') }}">Export</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
{% elseif app.request.get('_route') == 'homepage' %}
<nav class="navbar navbar-default">
<!-- /navbar-header -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#login">User Login <span class="sr-only">(current)</span></a></li>
<li><a href="#about">About</a></li>
<li><a href="#team">The Team</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
</div><!-- /main-heading -->
{% else %}
<nav class="navbar navbar-default">
<!-- /navbar-header -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="#">Dashboard<span class="sr-only">(current)</span></a></li>
<li><a href="#">Resources</a></li>
<li><a href="#">Profile</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>
{% endif %}
{% endblock %}
およびその他の小枝テンプレート
{% block header %}
<nav class="navbar navbar-default">
<!-- /navbar-header -->
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="{{ path('dashboard', {'id': user.id}) }}">Dashboard <span class="sr-only">(current)</span></a></li>
<li><a href="{{ path('resources', {'id': user.id}) }}">Resources</a></li>
<li><a href="{{ path('user_profile', {'id': user.id})}}">Profile</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</nav>`enter code here`
{% endblock %}
ここでは、私は投稿しないだろうコントローラ
namespace AppBundle\Controller;
use AppBundle\Entity\User;
use AppBundle\Entity\UserGroup;
use AppBundle\Entity\BehaviorData;
use Doctrine\ORM\EntityManagerInterface;
use Doctrine\Common\Persistence\ManagerRegistry;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Sonata\AdminBundle\Admin\AbstractAdminExtension;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
use AppBundle\Form\UserProfileCreateType;
use AppBundle\Form\BehaviorDataType;
use AppBundle\Form\CreateGoalType;
use AppBundle\Form\InvitationType;
/**
* @Route("/user")
*/ /**
* @Route("/{id}/profile", name="user_profile")
*/
public function userProfileCreateAction(EntityManagerInterface $em ,Request $request, User $user)
ですコントローラー全体がかなり長くて、それ以外はすべて動作します。この関数を呼び出すと、Userエンティティが渡されます。この関数を使用すると、特定のユーザーの詳細を表示できます。
「他のテンプレートはユーザーIDを知っていますか?テンプレートが基底から伸びていれば、すべての変数も基底で認識されます。この 'user 'をどうやって渡していますか? – DarkBee
userエンティティをbase.html.twigに渡す方法がわかりません。それはuseステートメントを使ってもう一方の小枝のコントローラーに渡されます。 – JavaStudent
あなたのテンプレートは基本権から拡張されますか? – DarkBee