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

  • 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
主站蜘蛛池模板: 依兰县| 东丽区| 天水市| 沅陵县| 北川| 长丰县| 泗阳县| 武城县| 兴安县| 榆中县| 福贡县| 灌阳县| 招远市| 清流县| 龙游县| 洮南市| 武清区| 会宁县| 琼海市| 赣州市| 大连市| 鲁甸县| 英山县| 石楼县| 兴业县| 石台县| 阿拉善左旗| 宁城县| 江门市| 新源县| 胶南市| 华蓥市| 博客| 海阳市| 新安县| 泸溪县| 上蔡县| 拉萨市| 清水县| 石渠县| 龙胜|