官术网_书友最值得收藏!

Dynamic templates and controllers

Now that we have a few records in our table, let's see how to fetch them via controller and feed their properties to our templates. What we expect from our dynamic template is to receive an object and show its properties. In our case, the object is User and its properties are name, bio, and email. So, edit the about/index.html.twig template as follows:

{# mava/app/Resources/views/about/index.html.twig #}

{% if user %}
  <h1>User Profile</h1>
  <strong>Name: </strong>{{user.name}} <br/>
  <strong>email: </strong>{{user.email}} <br/>
  <strong>Bio: </strong>{{user.bio}} <br/>
{% else %}
  mava is a web app for task management and team collaboration. <br/>
{% endif %}

Next, add a few lines to aboutAction() to retrieve information about the given user:

<?php
// AppBundle/Controller/DefaultController.php
// …
use AppBundle\Entity\User;
// ...
  /**
   * @Route("/about/{name}", name="aboutpage", defaults={"name":null})
   */
  public function aboutAction($name)
  {
    if ($name) {
      $user = $this->getDoctrine()
      ->getRepository('AppBundle:User')
      ->findOneBy(array('name'=>$name));
      if (false === $user instanceof User) {
        throw $this->createNotFoundException(
          'No user named '.$name.' found!'
        );
      }
    }
    return $this->render('about/index.html.twig', array('user' => $user));
  }

This action first accesses the Doctrine service, and, via this, approaches the User entity. The next step would be to find the first record that has a john value for its name property.

If no record is found, an exception will be thrown; otherwise, the found object will be passed to the index.html.twig template.

That's it. If you visit the http://localhost:8000/about/john or http://localhost:8000/about/jack URL, you will see that it works as we expected:

Dynamic templates and controllers
主站蜘蛛池模板: 平凉市| 历史| 甘德县| 聂荣县| 敦煌市| 和田市| 临城县| 诸城市| 运城市| 凌源市| 泉州市| 蒙城县| 石渠县| 凭祥市| 县级市| 玛多县| 古田县| 苍山县| SHOW| 瓦房店市| 沛县| 朔州市| 河池市| 循化| 什邡市| 巴彦淖尔市| 宣汉县| 陇川县| 锡林浩特市| 郴州市| 合作市| 洛宁县| 湄潭县| 密云县| 登封市| 明星| 龙海市| 南岸区| 佛冈县| 花莲市| 华亭县|