Предположим, у меня есть скриншот с столбцом date
, который определяет, когда был сделан снимок экрана. У меня также есть модель GameVersion с start_date
и end_date
методами экземпляра, определяющими начало и конец данной версии.
Если мне нужна ассоциация screenshots
для каждого GameVersion, которая возвращает все скриншоты, сделанные между ее start_date()
и end_date()
, могу ли я сделать что-нибудь вроде этого?
static $has_many = [
['screenshots', 'conditions' => ['date >= ? AND date <= ?', $this->start_date(), $this->end_date()]],
];
Если я пытаюсь это, я получаю:
Parse error: syntax error, unexpected '$this' (T_VARIABLE), expecting ']'
В Ruby On Rails, это достигается следующим образом:
has_many :birthday_events, ->(user) { where starts_on: user.birthday }, class_name: 'Event'
Это приводит к ошибке 'Parse: синтаксическая ошибка, неожиданная '(', expecting ']'' (полная строка: 'static $ has_many = [['screenshots', 'conditions' => ['date> =? AND date <=? ', self :: start_date(), self :: end_date()]]]; '). Чтобы уточнить,' start_date() 'и' end_date() 'являются методами экземпляра, а не статическими/классными методами. – TonyFox
@TonyFox, какая версия php? Я предлагаю вам использовать регулярный синтаксис, чтобы избежать проблем, или, может быть, вы забыли закрыть точку с запятой где-то – meda
5.4.7, а какая часть кода не является регулярным синтаксисом? Если вы не имеете в виду массив () вместо [], который я попробую. – TonyFox