您好我一直在尝试了解如何通过字段名称从模型中获取数据。我正在使用cakePHP,我需要从表中检索列的数据。语法是
> "select name from permissions"
所以我试着在book.cakephp.org上找到,所以我得到了字段函数,但这只给了我第一个值,而我有多个值。
我试过做了
$this->Model->find(array('fields'=>'Model.fieldName'));
但我明白语法本身存在缺陷。
有人可以让我知道根据列名查询的方法是什么。
答案 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']);