php - 引用另一个表的加载条件 - Phpactiverecord

标签 php phpactiverecord

我认为我遇到了 phpactiverecord 的限制,但需要澄清:

$data = array(
    'conditions' => array(
        'still_in_contest' => 1,
         'contest_month'   => $month,
         '`genres`.`id`'   => $genre, # THIS is the issue.. and an awkward "hack" that 
                                      # I was hoping would work..
     )
     'include' => array('song' => array('artist','genre')),
     'joins'   => array('
           LEFT JOIN songs 
               ON (songs.id = contest_submissions.song_id)
               LEFT JOIN genres 
                   ON (genres.id = songs.genre_id)',
     ),

是否不可能简单地在查询中添加类似 genres.id 的内容?

phpactiverecord正在将查询设置为:

WHERE `contest_submissions`.`genres`.`id`=?

如果是的话,是否还有其他方法可以在不自己做所有事情的情况下仍然受益于另一个类似查询的自动加载?

编辑: 我现在的解决方案是只修改 phpactiverecord 的 SQLBuilder 类的核心,如果键中有一个点,则不附加表的名称...

编辑2:

我尝试了您的解决方案 Nanne,但没有成功。 Phpactiverecord 最终将表名添加到所有内容之前。 :(

$genre = 1
    if($genre)
       $data['conditions']['genres.id'] = $genre;
     $data['conditions']['contest_submissions.still_in_contest'] = 1;
     $data['conditions']['contest_submissions.contest_month'] = $month;

它之前解决了,因为我保留了我的 hack。我是否错误地格式化了条件?

编辑3:

是的..是的,我的格式不正确。

最佳答案

你可以这样做。 我没有测试它,因为我没有时间重新创建你的表,但它是我目前使用的:它只是在你的条件下使用的不同语法。

$join   = "LEFT JOIN songs ON (songs.id = contest_submissions.song_id) 
           LEFT JOIN genres ON (genres.id = songs.genre_id)";
$models = \Models\YourModel::all(array( 
                  'joins'     => $join,
                 'conditions' => array('contest_submissions.still_in_contest = ? 
                                    AND contest_submissions.contest_month = ? 
                                    AND genres.id = ?',
                                 1,
                                 $month,
                                 $genre)));

(我希望我得到了正确的表名和数组/括号的数量:)

关于php - 引用另一个表的加载条件 - Phpactiverecord,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9559156/

相关文章:

php - 遍历具有私有(private)属性的对象

php - 如何使用事件记录查询指定时间之间的日期的sql

php - 为什么这个 PHP activerecord 关联不起作用?

php - Laravel 中的 MassAssignmentException

php - 构建表后运行 php 文件

php - 如何在 IE 中使用 AJAX

php json_decoding 与 xml 解析

php - 在 vars 中处理带有换行符的字符串

php - 无法更新 php activerecord : model is read-only