Exemple #1
0
 public function validateMovieExist($key)
 {
     $movie = Movie::model()->findByPk($this->movieId);
     if (!$movie) {
         $this->addError($key, 'Такого ролика не существует в базе данных.');
     }
 }
 private function _getModelById($id, $with = array())
 {
     $model = Movie::model()->with($with)->findByPk($id);
     if (!$model) {
         // TODO: Сделать нормальное исключение
         throw new \CHttpException(404, 'Модель не найдена');
     }
     return $model;
 }
 /**
  * @param null $movieId - позволяет указать для какой игры мо хотим создать ролик
  * @param null $movieFileType - позваляет указать какой тип файла мы хотим создать
  * @throws \Exception
  * @throws \app\components\Exception
  */
 public function actionCreate($movieId = null, $movieFileType = null)
 {
     $movie = Movie::model()->with('game')->findByPk($movieId) ?: new Movie();
     $movieFile = new Movie\File();
     if ($movieFileType) {
         $movieFile->setAttribute('type', (int) $movieFileType);
     }
     $movieFileForm = $this->_createParamsForm(self::SCENARIO_CREATE, $movie, $movieFile);
     $this->_tryAjaxValidation($movieFileForm);
     $backUrl = $this->_getBackUrl();
     if (Yii::app()->getRequest()->getIsPostRequest()) {
         $movieFileForm->setAttributesByPost();
         if ($movieFileForm->save()) {
             $this->redirect($backUrl);
         }
     }
     $this->render('create', array('movieFile' => $movieFile, 'movieFileForm' => $movieFileForm, 'backUrl' => $backUrl));
 }
 /**
  * @param string $search Поисковая строка
  */
 public function actionGetMovieList($search = '')
 {
     $criteria = new CDbCriteria();
     // X-TODO: Сделать разбиение на части на клиенте
     if (strpos($search, '-') !== false) {
         list($gameSearch, $movieSearch) = explode('-', $search);
         $gameSearch = $search = $this->_prepareSearchString($gameSearch);
         $movieSearch = $search = $this->_prepareSearchString($movieSearch);
         $criteria->addSearchCondition('t.title', $movieSearch);
         $criteria->addSearchCondition('game.title', $gameSearch);
     } else {
         $search = $this->_prepareSearchString($search);
         $criteria->addSearchCondition('t.title', $search);
         $criteria->addSearchCondition('game.title', $search, true, 'OR');
     }
     $criteria->order = 't.title ASC';
     $movies = Movie::model()->with('game')->findAll($criteria);
     $data = array();
     foreach ($movies as $movie) {
         $data[] = array('id' => $movie->id, 'title' => $movie->title, 'game' => array('id' => $movie->game->id, 'title' => $movie->game->title));
     }
     $this->_sendAnswer($data);
 }