Различные модели в плагине рейтинга CakePHP - PullRequest
0 голосов
/ 15 декабря 2011

У меня есть сайт, который перечисляет mp3 файлы в различных категориях.Сайт находится в CakePHP, и я использую плагин CakePHP для оценки рейтинга.Песни распределены по категориям на основе альбомов, певца и музыкального директора, поэтому мне нужно ввести рейтинг для каждого из них.Плагин рейтинга, который я сейчас использую, имеет возможность указать модель.Класс модели выглядит примерно так:

class Rating extends Model {
  var $name = 'Rating';

  var $validate = array(
    'user_id'  => array(
      'rule' => array('maxLength', 36),
      'required' => true
    ),
    'model_id' => array(
      'rule' => array('maxLength', 36),
      'required' => true
    ),
    'model'    => array(
      'rule' => 'alphaNumeric',
      'required' => true
    )
  );


  var $hasMany = array(
    'Rating' => array(
      'className'  => 'Rating',
      'foreignKey' => 'model_id',
      'conditions' => array('Rating.model' => 'rating'),
      'dependent'  => true,
      'exclusive'  => true
    )
  ); 
}

В нем есть возможность указать название модели и идентификатор модели, поэтому я думаю, что моя проблема будет исправлена, если я смогу указать имя модели или любой другой параметр.вместе с этим массивом.Поскольку я новичок в CakePHP, кто-нибудь, пожалуйста, помогите мне найти решение.

Пожалуйста, проверьте плагин рейтинга, о котором я говорю здесь:

http://bakery.cakephp.org/articles/schneimi/2010/08/19/ajax-star-rating-plugin-1

1 Ответ

2 голосов
/ 15 декабря 2011

Определение атрибута $ hasMany должно идти в модели, которую вы хотите оценить.Так что для Album это будет выглядеть примерно так:

/**
* Album Model
*/
class Album extends Model
{
  var $name = 'Album';

  var $hasMany = array(
    'Rating' => array(
      'className'   => 'Rating',
      'foreignKey'  => 'model_id',
      'conditions' => array(
        'Rating.model' => 'Album'
      ),
      'dependent'   => true,
      'exclusive'   => true
    )
  ); 
}
...