Я наконец работаю над проектом в Symfony 3, и это действительно очень интересно. У меня возникают новые проблемы и новые вопросы, которыми я хочу с вами поделиться.
Я работаю над формой поиска публикаций по нескольким критериям. (У меня есть 3 поля ввода текста: дата, категория и ключевое слово).
Итак, я обрабатываю публикацию, состоящую из даты создания, связанной с категорией отношением oneToMany [публикация - это объект, владеющий, каждая публикация в одной категории] и имеющий несколько нескольких тегов [существует связь ManyToMany с объектом Tag. Форма поиска позволяет искать по дате создания, категории и тегу. Справа от списка публикаций у меня есть форма для поиска.
<div>
<span class = "titlerecherche">recherche</span>
<div class = "formrecherch">
<form action = "{{ url('search_english_pub') }}" method = "POST" class = "form-horizontal" role = "form" data-parsley-validate novalidate>
<div class = "form_row">
<div class = "col-xs-12 col-sm-12">
<input type = "text" class = "input" name = "date" placeholder = "Date *" required></div>
</div>
<div class = "form_row">
<div class = "col-xs-12 col-sm-12"><input type = "text" name = "categorie" class = "input" placeholder = "Catégorie *" required></div>
</div>
<div class = "form_row">
<div class = "col-xs-12 col-sm-12"><input type = "text" name = "tag" class = "input" placeholder = "Tag *" required></div>
</div>
<button class = "btnForm">Envoyer <i class = "icon-long-arrow-right"></i></button>
</form>
</div>
</div>
В моей организации есть:
Мне удалось отобразить публикации по дате, но я не смог отобразить их по категории, которая имеет отношение ontomany с публикацией (приоритетный объект), или по тегу, который имеет многоатомные отношения с публикацией, о которых известно, что я хочу отобразить их, зная, что я хочу отобразить их по этим трем критериям "дата, категория и тег"
это метод, который я создал для отображения по дате: общедоступная функция searchAction () {$ request = $ this-> container-> get ('request_stack') -> getCurrentRequest (); $ date = $ request-> request-> get ('дата'); $ em = $ this-> getDoctrine () -> getManager (); $ listEnglishs = $ em-> getRepository ('MDWEBInEnglishBundle: InEnglish') -> findBy (array ("date" => new \ DateTime ($ date))); return $ this-> render ('MDWEBFrontBundle: InEnglish: list.html.twig', ar ray ('listEnglishs' => $ listEnglishs)); }
Скопируйте код class
из редактора, чтобы он содержал разрывы строк.
Пожалуйста, не используйте скриншоты только с текстом. А если вы используете изображения, проверьте, работают ли они.
Если бы вы только могли отредактировать вопрос и предоставить более подробную информацию, чтобы я мог больше помочь тем временем попробуйте это:
public function searchAction(Request $request)
{
$date = $request->request->get('date');
$category = $request->request->get('category');
$keyword = $request->request->get('keyword');
$em = $this->getDoctrine()->getManager();
$listEnglishs = $em->getRepository('MDWEBInEnglishBundle:InEnglish')
->findBy(array("date" => new \DateTime($date), "category" => $category, "keyword" => $keyword));
return $this->render('MDWEBFrontBundle:InEnglish:list.html.twig',
array('listEnglishs' => $listEnglishs));
}
также добавьте это вверху
use Symfony\Component\HttpFoundation\Request;
в моей сущности у меня есть класс Publication {/ ** * @ORM \ Column (type = "datetime", nullable = true) / private $ date; / * * @ORM \ ManyToOne (targetEntity = "MDWEB \ ActualiteBundle \ Entity \ Ca tegorie") * @ORM \ JoinColumn (name = "category_id", referencedColumnName = "id") / private $ Category; / * * @ORM \ ManyToMany (targetEntity = "MDWEB \ ActualiteBundle \ Entity \ T ag", cascade = {"persist"}) * @ORM \ JoinTable (name = "tag_english") * / private $ tags; }
С какой проблемой вы столкнулись?