find by column name cakePHP

16,519

Solution 1

There is no way you can query out based on column name using one of the cake methods. You have to use the query method.

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

Solution 2

findAllBy will find all records based on the field name.

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

For eaxample:

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

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

Solution 3

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

You forgot the array function. Also:

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

will work.

Solution 4

Found it... hope it will help someone.

    $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',
    ));

Solution 5

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

it works for me everytime.

Share:
16,519
macha
Author by

macha

Updated on June 16, 2022

Comments

  • macha
    macha almost 2 years

    Hello I have been trying to understand how to get data from model by the name of field. I am using cakePHP, and I need to retreive a column's data from a table. The syntax is

    > "select name from permissions"
    

    So I tried to find out on book.cakephp.org, so I got the field function, but that only gives me the first value, while I have more than one values for this.

    I tried do a

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

    but I understood that the syntax itself is flawed.

    Can somebody let me know what is the method to query based on column name.