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

  • Mastering Symfony
  • Sohail Salehi
  • 212字
  • 2021-07-16 11:28:59

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
主站蜘蛛池模板: 重庆市| 遵义县| 理塘县| 萨迦县| 成都市| 宁河县| 红安县| 陵水| 科技| 安西县| 大英县| 铁力市| 夏邑县| 彭州市| 库尔勒市| 崇义县| 库尔勒市| 东阿县| 文水县| 玉门市| 邮箱| 图木舒克市| 梁山县| 旌德县| 如东县| 清涧县| 恩施市| 阜城县| 西林县| 武强县| 旌德县| 新乐市| 社旗县| 福州市| 民县| 枝江市| 宜良县| 乐都县| 隆林| 长葛市| 柯坪县|