У меня есть модель модели и видео модели, что связано с отношением toTo и hasMany. Мне нужно в контроллере Comment (в одном действии) загружать подключенное видео, изменять его один атрибут, а затем сохранять комментарии и видео. Я знаю, как изменить модель комментариев, но я никак не могу изменить модель видео.Модель загрузки CakePhp в другой модели и изменить ее данные
Это моя функция:
$this->Comment->id = $id;
if($this->Comment->exists()){
$this->loadModel('Comment');
$this->Comment->set('accepted', 1);
if($this->Comment->save()){
$this->Session->setFlash('Comment accepted');
//HOW TO CHANGE ATTR OF VIDEO
//in $this->Comment->video_id there is NULL
}
else
$this->Session->setFlash('Can't accept comment');
$this->redirect($this->request->referer());
}
else{
throw new NotFoundException(__('Invalid comment'));
}
Можете ли вы помочь мне, ребята?
Но как я могу получить данные из видео. Мне нужно получить текущую стоимость, изменить ее и сохранить. Также когда я делаю: $ this-> Comment-> Video-> id = $ videoId; и Video не существует, он создается в DB (все attrs empty) – Chris
Вы уже получаете текущее значение, изменяете его и сохраняете его для комментариев, поэтому вы просто используете ту же логику для видео, только вы получаете доступ к нему через $ this-> Comment-> Видео, а не $ this-> Комментарий –
$ this-> Комментарий-> video_id имеет значение null. $ this-> Комментарий-> Видео-> ставка равна нулю. Я нашел решение для чтения комментария как массива, получить видео_ид, прочитать видео, прочитать значение и изменить его. – Chris