Условия Cakephp на имеет много - PullRequest
0 голосов
/ 08 сентября 2018

Извините, если это дубликат, но я действительно не знал, как искать то, что я хочу. Следовательно, я не нашел ответ.

Итак, я использую cakephp, и у меня есть модель под названием «спонсор», в которой много «баннеров», «мероприятий» и «вакансий».

В контроллере у меня теперь есть:

public function index()
{
$this->_setRedesign();
$sponsors = $this->Sponsor->find('all', [
  'order'      => [
    'Sponsor.name',
  ],
  'conditions' => [
    'publish_from <'    => date('Y-m-d'),
    'publish_to >'    => date('Y-m-d'),
  ],
]);
$this->set(compact('sponsors'));
}

Если я проверю переменную $ спонсоры в отладке cakephp, я увижу $ спонсор: https://i.stack.imgur.com/4nVYZ.jpg

Это в принципе то, как я хочу, чтобы $ спонсоры выглядели, но то, что я хочу, это обусловить действия, например. Так, например, у спонсора № 1 есть только те виды деятельности, которые есть в будущем (поэтому не все 3, а только 2). Конечно, я могу просмотреть все действия спонсора в представлении и сделать что-то только с теми, которые есть в будущем. Но мне было интересно, если есть решение для контроллера.

Edit: Чтобы уточнить: я хочу, чтобы все спонсоры (не только спонсоры, у которых есть мероприятия в будущем), но и от одного спонсора, я хочу только мероприятия, которые будут проводиться в будущем.

1 Ответ

0 голосов
/ 08 сентября 2018

Я нашел решение сам. Использование Containablebehavior.

С моим кодом, похожим на это, я достиг того, что хотел:

$sponsors = $this->Sponsor->find('all', [
        'order'      => [
            'Sponsor.name',
        ],
        'conditions' => [
            'publish_from <'    => date('Y-m-d'),
            'publish_to >'    => date('Y-m-d'),
        ],
        'contain' => [
            'Activity' => [
                'conditions' => [
                    'Activity.time_start >'  => date('Y-m-d')
                ]
            ]   
        ]
    ]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...