Чат Telegram
Группа ВКонтакте
Новый комментарий


valera 07.04.2019 в 21:57

Подскажите, пож-ста, как мы получили в переменную $post конкретный пост?

 /**
     * @Route("/posts/{slug}", name="blog_show")
     */

 public function post (Post $post){
        return $this->render('posts/show.html.twig',[

        'post'=> $post]);
    }

т.е. понятно, что Symfony нашёл пост по уникальному идентификатору из роута, а дальше как в экшене он оказался под именем $post?

lolychank 07.04.2019 в 22:01
Iliusha99 17.08.2019 в 12:35

Значит, symfony ищет сам в базе по полю через плейсхолдер? Или я так не понял(

cyprusscorpion 15.04.2019 в 10:33

Цитата:
"Поскольку мы унаследовались от AbstractController, мы можем достать репозиторий следующим образом и это будет первый способ:
$repo = $this->getDoctrine()->getRepository(Post::class);"

А какое значение возвращает $this->getDoctrine()?

lolychank 15.04.2019 в 17:40

$this->getDoctrine() возвращает ManagerRegistry. Узнать это можно, если в шторме кликнете на метод.

cyprusscorpion 15.04.2019 в 20:50

Благодарю )

cyprusscorpion 15.04.2019 в 12:24

Цитата:
"Возвращаемся в шаблон posts/index.html.twig и меняем ссылку на новую:

<a href="{{ path('blog_show', {'slug': post.slug}) }}">{{ post.title }}</a>".
Так мы в этом шаблоне и находимся, и только что написали в нем:

{% extends 'base.html.twig' %}

{% block body %}
    <p>{{ post.body }}</p>
{% endblock %}

Да, видимо не так просто эту "симфоническую мелодию" объяснить так, чтобы сразу все стало понятно ))

lolychank 15.04.2019 в 17:41

Мы не в нем находимся. Это шаблон show.html.twig, а ссылка из index.html.twig.

cyprusscorpion 15.04.2019 в 20:47

Цитирую:
"Теперь переходим в шаблон и пишем следующее:

{% extends 'base.html.twig' %}

{% block body %}
<p>{{ post.body }}</p>
{% endblock %}".
Какой шаблон??? Наверное, так и надо писать: "В шаблон show.html.twig..."
Да этот файл еще создать надо, или он автоматически создается?
Чайники приходят учиться, на них и рассчитывайте :))

valera 16.04.2019 в 22:22

не в тот урок написал. переношу)

sumanai+webshake.ru@ya.ru 26.10.2019 в 17:56
App\DataFixtures\AppFixtures:
        $slugify: 'Cocur\Slugify\Slugify'

Не знаю, как это у вас работает, но у меня в переменной оказывается строка.
Нужно регистрировать бандл и использовать autowire, в readme библиотеки всё написано.

vtolstov 11.11.2019 в 08:38

Если репозиторий доставать способом

$repo = $this->getDoctrine()->getRepository(Post::class);

то может вылезти ошибка "some mandatory parameters are missing", так что юзайте конструктор, как тут описано.

Логические задачи с собеседований