如何使用特定字段读取CakePHP模型?

如何使用特定字段读取CakePHP模型?,php,cakephp,model,Php,Cakephp,Model,我是CakePHP新手,我一直在阅读使用其他字段的模型。我做了一个蛋糕烘焙命令来生成一个简单的用户积垢。我可以使用提供的url CakePHP查看用户 /users/view/1 我可以使用id=1查看用户。如果我想按名称而不是id查看用户,该怎么办 /users/view/username 默认情况下,view函数按id读取用户模型 $this->User->read(null, $id) 谢谢。我本人从未使用过cakePHP,但我建议您可能需要实现一个新的用户模型方法,比如

我是CakePHP新手,我一直在阅读使用其他字段的模型。我做了一个蛋糕烘焙命令来生成一个简单的用户积垢。我可以使用提供的url CakePHP查看用户

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

/users/view/username
默认情况下,view函数按id读取用户模型

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

谢谢。

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

您可以使用
find
函数或
findBy()
在您的情况下
findByUsername()


看来CakePHP正在重点反对某些函数,例如
findAll()
。也许很快,像
findBy()
这样的神奇方法也会有同样的命运

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

function findUser($username=''){
    return $this->find('first', array(
        'conditions' => array(
            'User.username' => $username
        )
    ));
}
也许您有一个
状态
字段,也许配置文件不是公共的,您可以添加一个条件:

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

我认为这比
findBy

“似乎CakePHP正专注于弃用一些函数,比如findAll()。也许很快,像findBy()这样的神奇方法也会有同样的命运”你从哪里读到这些函数将被弃用?嗨。感谢您提供的解决方案。:-)