按列名称cakePHP查找

时间:2010-10-15 16:17:48

标签: php cakephp-1.3

您好我一直在尝试了解如何通过字段名称从模型中获取数据。我正在使用cakePHP,我需要从表中检索列的数据。语法是

> "select name from permissions"

所以我试着在book.cakephp.org上找到,所以我得到了字段函数,但这只给了我第一个值,而我有多个值。

我试过做了

$this->Model->find(array('fields'=>'Model.fieldName'));

但我明白语法本身存在缺陷。

有人可以让我知道根据列名查询的方法是什么。

7 个答案:

答案 0 :(得分:4)

$this->Model->find(array('fields'=>'Model.fieldName'))

您忘记了array功能。也:

$this->Model->find(array('fields'=>array('Model.fieldName')))

会奏效。

答案 1 :(得分:4)

findAllBy将根据字段名称找到所有记录。

$this->Model->findAllBy<fieldName>(string $value, array $fields, array $order, int $limit, int $page, int $recursive);

例如:

$this->Permission->findAllByName('Some Name');

http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#findallby

答案 2 :(得分:2)

找到它...希望它会帮助某人。

    $workshop_lists = ClassRegistry::init('Workshop')->find('all',array(
    'fields'=>array('user_id', 'title')
    ), 
     array(
       'conditions' => array('user_id' => $this->Auth->user('id')),
       'group' => 'Workshop.user_id',
        'order' => 'posted DESC',
    ));

答案 3 :(得分:1)

您无法使用其中一种蛋糕方法根据列名进行查询。您必须使用查询方法。

语法:$this->Model->('Select columnname from table');

答案 4 :(得分:1)

$这 - &GT;模型 - &GT;发现( '所有',阵列( '字段'=&GT;阵列( 'Model.fieldName')))

每次都适合我。

答案 5 :(得分:0)

如果我理解得很好,你不仅需要1个值,而且还需要表'权限'中'name'列中的整个值。在这种情况下,您可以使用:

$this->Model->find('list',$params);  

(参见'find'here的解释)

对于您将使用的'$ params'部分:

$params=array('fields'=>array('name'));

或将所有内容放在一行中:

$arrayOfNames= $this->Model->find('list',array('fields'=>array('name')));

这将为您提供一个数组'$ arrayOfNames',其中key是'permissions'表中的'id'(主键),其值是同一个表中'name'字段中的对应名称。这是数组将是这样的:   的 'id'=&GT; '姓名'

[23] =&GT; 'NAME1'
  [28] =&GT; 'NAME2'
  [29] =&GT; 'NAME3'
  ............

非常像我想你想要的。希望它有所帮助。

答案 6 :(得分:0)

$this->Model->find('list', ['valueField' => 'fieldName']);