Я сделал расширение extbase и хочу перечислить свои назначения, заказанные сначала startDate, и для тех встреч, которые находятся в тот же день, я хочу заказать их по фамилии клиента.
В моем хранилище я сделал следующий рабочий запрос:Запрос с заказами, приводящий к пустым результатам - Extbase 6.2
public function findAppointmentsForList($future) {
$curtime = time();
$query = $this->createQuery();
$constraints = array();
if ($future !== NULL) {
$constraints[] = ($future) ?
$query->greaterThanOrEqual('startDate', $curtime) :
$query->lessThan('startDate', $curtime);
}
if ($constraints) {
$query->matching($query->logicalAnd($constraints));
} else {}
$orderings = array(
'startDate' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING,
// 'customer.lastName' => \TYPO3\CMS\Extbase\Persistence\QueryInterface::ORDER_ASCENDING
);
$query->setOrderings($orderings);
return $query->execute();
}
Это возвращает меня некоторые назначения, таким образом, я предполагаю, что это работает.
Если я раскомментирую строку 'customer.lastName...
, она возвращает 0 встреч.
Что происходит? Это просто заказ, он не может сделать запрос меньше ...
У меня даже не получается никаких ошибок - я попробовал это с недопустимым свойством, и это дало мне ошибку, поэтому имя свойства верно слишком.
И я отлаживал рабочий запрос и фамилии в тех объектах клиента, где есть.
Это мой вход назначение модели:
/**
* customer
*
* @var \vendor\extension\Domain\Model\Customer
*/
protected $customer = NULL;
И это TCA соответствующая ему:
'customer' => array(
'exclude' => 1,
'label' => 'LLL:EXT:extension/Resources/Private/Language/locallang_db.xlf:tx_extension_domain_model_appointment.customer',
'config' => array(
'type' => 'select',
'foreign_table' => 'fe_users',
'minitems' => 0,
'maxitems' => 1,
),
),
EDIT: Это теперь работает ... но, к сожалению, я не знаю, почему, слишком сильно изменилось, и я думал, что не имеет к этому никакого отношения. Одна вещь, которая могла бы повлиять на это:
startDate
имеет типDate
, и я заметил, что запрос не отфильтровывал его правильно, поэтому после того, как я сменилcurtime
наnew \DateTime('midnight')
, он был правильно отфильтрован.
И поле в вашей таблице 'Customer' является' last_name'? – lorenz
Да, это из таблицы 'fe_users', потому что' Customer' расширяет его –