После моего вопроса previous у меня возникла новая проблема. У меня есть 2 объекта - авторы и книги, у одного автора может быть много книг, но в 1 книге есть только 1 автор. Теперь книга также имеет дату создания. Я могу показать, сколько книг каждый автор, как это,Symfony2 Twig показать записи за последний месяц
Author Books
Author1 5
Author2 7 etc...
, но наряду с этим в той же таблице мне нужно показать отдельно, как было добавлено много книг каждого автора в прошлом месяце, как это:
Author Books Added in last month
Author1 5 2
Author2 7 3 etc..
В моей БД я получаю все авторские объекты, которые сопоставляется с книгами, и это становится все книги для автора, как это:
<td>{{ author.books|length}}</td>
Так что я думаю, что должна быть какая-то Twig datet ime, который будет показывать только книги, добавленные в прошлом месяце. Ive видел this вопрос и еще кое-что здесь о SO, но они в основном связаны с форматированием даты, а не с интервалами. Любые идеи приветствуются, спасибо.
EDIT 1 Код контроллера
<?php
namespace AB\ProjectBundle\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Doctrine\Common\Collections\Criteria;
use Symfony\Component\HttpFoundation\Response;
use AB\ProjectBundle\Entity\Book;
class AuthorController extends Controller
{
public function indexAction()
{
$em = $this->getDoctrine()->getManager();
$userid = $this->container->get('security.context')->getToken()->getUser()->getId();
$entity = $em->getRepository('ABProjectBundle:Authors')->findBy(array('userid'=>$userid));
$books = $entity[0]->getBooks();
$criteria = Criteria::create()
->where(Criteria::expr()->gte("datecreation", "2016-03-15"))
->orderBy(array("datecreation" => Criteria::ASC))
->setFirstResult(0)
->setMaxResults(20)
;
$filtered = $books->matching($criteria);
$twig = 'ABProjectBundle::index.html.twig';
$paramTwig = array(
'authors' => $entity,
'filtered' => $filtered,
);
return $this->render($twig, $paramTwig);
}
Im передавая его в виде с длиной, но получаю только нули в представлении. Если я удаляю длину, я получаю Doctrine \ Common \ Collections \ ArrayCollection @ 0000000023bf3ae5000000006ee44d9f для каждого автора. Есть идеи, что это может быть? – Jack
Теперь он говорит об ошибке FatalErrorException в строке DateTimeType.php 53: Ошибка: вызов в формате функции участника() в строке. Тип моего столбца added_date в DB - Timestamp, изменил его на DateTime, но это не помогло. – Jack
Изменен тип столбца в файле orm.yml для строки, и он решил проблему, но я не знаю, правильно ли это сделать. Теперь он получает правильное количество книг, созданных первым автором за последний месяц, и показывает этот же номер для каждого оставшегося автора в таблице (( – Jack