php - 带下划线的 CakePHP 3 动态查找器

标签 php cakephp cakephp-3.0

我想使用动态查找器方法。我在 the documentation 看过$this->Users->findByUsername。我的问题是我的列名称是 post_id,我不确定下划线如何影响我的动态查找器函数的名称。以下是我迄今为止尝试过但似乎无法正常工作的方法

findByPost_id( $post_id )
findByPost_Id( $post_id )
findByPost_ID( $post_id )
findByPostId( $post_id )

上下文是我的代码的样子

//VotesTable.php 
public function afterSaveCommit($event, $entity, $options) {
    if ( $entity->vote_type_id == self::favorite ) {
        $qt = TableRegistry::get('questions');
        $question = $qt->findByPostId($entity->post_id);
        $question->favorite_count = $question->favorite_count + 1;
        if ( ! $qt->save( $question ) ) {
            throw new \Exception("Unable to update favorite count", 500);
        }
    }
}

当我记录 $question 时,它输出一个查询,而不是一个对象,而且查询无法运行。它以 WHERE 'questions'.'post_id' = :c0

结尾

最佳答案

Cake 会将下划线转换为 pascal 大小写单词,所以你会这样找到它:

$this->findByPostId();

这是正确的做法。

关于php - 带下划线的 CakePHP 3 动态查找器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863741/

相关文章:

php - 使用 Blogger Post Image API 上传图片

未找到 CakePHP 3.0 供应商类

php - 绑定(bind)模型的 CakePHP 分页问题

php - 如何让PHP给本地用户发送邮件(cakePHP、Linux SLES)

cakephp-3.0 - 验证规则 notEmpty 和 requirePresence

php - 用数组填充选择输入

php - 如何在 Kohana 中使用 MongoDB?

php - UsersController::beforeFilter() 的声明应该与 AppController::beforeFilter(Cake\Event\Event $event) 兼容

php - CakePHP 3 - 有条件地为关联表创建新实体

php - 多封抄送电子邮件表示电子邮件不符合 RFC 2822, 3.6.2