В настоящее время я работаю в частной социальной сети для развлечения и улучшения своих навыков.
В любом случае, я хочу отобразить форму, чтобы оставить комментарий к сообщению, используя цикл, но у меня есть проблемы при попытке этого.
Я использую Symfony, веточку и начальную загрузку, и я хотел бы убрать js, jquery или ajax подальше.
Вот мой код:
Мой конструктор форм:
class CommentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', null, [
"label" => "Your title"
])
->add('content', null, [
"label" => "Your content"
])
->add('submit', SubmitType::class, [
"label" => "Publish your shitty comment!"
]);
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Comment::class,
]);
}
}
и мой взгляд:
<ul class="nav col-4 offset-3">
{% for post in posts %}
<li class="postItem">
<article class="postItem">
<p> {{ post.title }} </p>
<img id="postPics" src="{{ asset('./pictures/posts/' ~ post.picture) }}">
{{ form(leaveCommentForm) }}
<h3>{{ post.title }}</h3>
<p>{{ post.content }}</p>
<author>{{ post.user.username }}</author>
<div class="commentPost">
{% for comment in post.comments %}
<article>
<h6 style="font-weight: bold">{{ comment.title }} -
By
<author>{{ comment.user.username }}
on {{ comment.dateCreated | date('Y-M-d') }}</author>
</h6>
<p>{{ comment.content }}</p>
</article>
{% endfor %}
</div>
<input type="hidden" value="{{ post.id }}" name="postId"> {{ post.id }}
<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Leave a comment
</button>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Leave a comment</h4>
</div>
<div class="modal-body">
{{ form_start(leaveCommentForm) }}
<input type="hidden" value="{{ post.id }}" name="postId"> {{ post.id }}
{{ form_end(leaveCommentForm) }}
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
</article>
</li>
{% endfor %}
</ul>
Как вы можете видеть, я хочу отображать свою форму на каждой итерации сообщения (с модальной или без нее, мне все равно, я просто пробовал некоторые вещи).
Мои проблемы здесь:
* Если я использую модал, я не могу получить свой post.id внутри моего модала и поэтому не могу отправить его своему контроллеру.
На самом деле я получаю значение первого post.id для каждого сообщения.
* Если я не использую модал, я даже не вижу свою форму на своей странице.
Если у вас есть решение, которое было бы замечательно!
Заранее спасибо, ребята!