如何使用特定的字段阅读CakePHP Model?

时间:2010-11-29 16:51:24

标签: php cakephp model

我是CakePHP的新手,我在使用其他领域阅读模型时遇到困难。我做了一个蛋糕烘焙命令来生成一个简单的用户CRUD。我可以使用提供的CakePHP来查看用户。

/users/view/1

我可以使用id = 1查看用户。如果我想按名称而不是ID查看用户该怎么办?

/users/view/username

默认情况下,视图功能按ID读取用户模型。

$this->User->read(null, $id)

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以在案件find

中使用findBy<Field>()功能或findByUsername()

check this

答案 1 :(得分:0)

我自己从未使用过cakePHP,但我建议你可能需要实现一个新的用户模型方法,比如getUserByUsername($ username) 然后,这将与您的DAL接口,该DAL将根据用户名获取该用户的详细信息,并返回可以根据您的意愿使用的用户对象...

答案 2 :(得分:0)

CakePHP似乎专注于弃用某些功能,例如findAll()。也许很快,诸如findBy<field>()之类的神奇方法将具有相同的命运。

我可以推荐martswite建议的内容,你应该创建自定义函数:

function findUser($username=''){
    return $this->find('first', array(
        'conditions' => array(
            'User.username' => $username
        )
    ));
}

也许您有一个status字段,也许该个人资料不公开,您可以添加条件:

function findUser($username=''){
    return $this->find('first', array(
        'conditions' => array(
            'User.username' => $username,
            'User.status' => 1
        )
    ));
}

我认为这比findBy<Field>更加模块化。