【问题标题】:Different models in CakePHP rating pluginCakePHP 评级插件中的不同模型
【发布时间】:2011-12-15 04:58:58
【问题描述】:

我有一个网站,列出了各种类别的 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
    )
  ); 
}

它具有指定模型名称和模型 ID 的选项,因此我认为如果我能够指定模型名称或任何其他参数以及此数组,我的问题将得到解决。由于我是 CakePHP 的新手,请有人帮我找到解决方案。

请检查我在这里谈论的评级插件:

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

【问题讨论】:

    标签: php jquery cakephp cakephp-1.3


    【解决方案1】:

    $hasMany 属性定义需要放入您要评价的模型中。所以对于专辑,它看起来像:

    /**
    * 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
        )
      ); 
    }
    

    【讨论】:

    • 所以你的意思是我需要创建另一个名为 Albun 的模型,就像插件的 Ratings 模型一样,并将代码放在那里或将此代码放在获取专辑的模型中..?并且在给出这个之后我怎么能告诉代码它必须使用这个模型..?我还需要将歌曲/专辑/音乐总监 ID 与评级一起传递。
    • 是的,您需要为专辑、歌手等创建模型。我建议您在开始使用插件之前先学习 Cake 的基础知识。 book.cakephp.org/2.0/en/tutorials-and-examples/blog/blog.html
    • 谢谢莫兹。我已经完成了模型并且它正在工作。它将带有型号名称的评级存储为歌曲详细信息。但是,我对 model_id 的事情有些困惑。我需要在这个地方有歌曲/专辑 ID,以便我可以识别指定的项目。我试图将 song_id 作为 model_id 传递。但随后它返回错误为错误:songRating 的 model_id 21 不存在。我想我需要在表中再添加一列来指定歌曲/专辑 ID。能请教一下吗?
    • model_idratings 表中。这引用了 songs 表中的 id
    • 我已将 hasmany 添加到 Album 模型中,并且专辑表的 ID 名为 album_id。我还在表格中添加了平均值和投票字段。但现在它显示的错误是 1054: Unknown column 'Album.id' in 'where Clause'。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-28
    • 1970-01-01
    • 2017-09-29
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多