CakePHP findbyList - PullRequest
       11

CakePHP findbyList

0 голосов
/ 27 апреля 2018

Я получаю данные от CakePHP findbyList

Array
(
    [92] => 5
    [93] => 5
    [98] => 5
)

КОД

$get = array(
    'fields' => array('Upload.type'),
    'joins' => array(
        array(
            'alias' => 't',
            'table' => 'temp_files',
            'type' => 'LEFT',
            'conditions' => array('Upload.id = t.file_id')
        ),
        array(
            'alias' => 'o',
            'table' => 'orders',
            'type' => 'LEFT',
            'conditions' => array('o.batch_id = t.batch_id')
        )
    ),
    'conditions' => array('OR'=>array('o.user_id '=>$user['id'],'t.user_id '=>$user['id'])),
    'group' => 'Upload.id'
);

$files = $this->find('list',$get);

Есть ли в CakePHP какой-либо способ получения таких данных, как:

Array
(
    [5] => Array
        (
            [0] => 92
            [1] => 93
            [2] => 98
        )
)

Ответы [ 4 ]

0 голосов
/ 02 апреля 2019

EX: - если вы получаете список имени пользователя с userID, то вы используете коллекцию CakePHP в запросе CakePHP. Коллекция CakePHP здесь: Коллекция CakePHP

$userList = $this->find()
                ->where(['status' => Configure::read('Status.active')])
                ->order(['first_name' => 'ASC'])
                ->combine('id','name')
                ->toArray();

в этом результате в userID это ключ и имя в качестве значения.

0 голосов
/ 27 апреля 2018

Да, есть два способа извлечения результатов, как у вас:

Найти резьбу:

https://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find-threaded

и используйте Хеш-утилиту для извлечения, объединения и т. Д. Ваших результатов:

https://book.cakephp.org/2.0/en/core-utility-libraries/hash.html

0 голосов
/ 18 июля 2018

Было бы намного лучше понять эту ситуацию, если бы упоминалась структура БД. В любом случае, я бы предложил использовать $ this-> find ('all', $ get) вместо списка, и вы можете поэкспериментировать с вашим окончательным массивом результатов, управляя тем, как вам нужен ваш окончательный выходной массив .

0 голосов
/ 27 апреля 2018

Не зная, как выглядит ваша база данных, я бы, вероятно, использовал $this->find('all',$get) вместо 'list'

В списке всегда будет указан идентификатор вашей модели в качестве ключа, поэтому он никогда не будет работать так, как вам нужно.

...