在CakePHP 3.x控制器中获取一列

时间:2018-02-08 11:42:39

标签: arrays cakephp cakephp-3.0

如何使用sql获取一个colum并将其转换为数组并在控制器中使用?

$allid = $this ->TabelName
            ->find('list',array(
                'fields' => array('id'),
                'conditions' => array(
                    'User_id' => '1'
                )
            ));
        $this->set(compact('allid'));



        $data = $allid->toArray();
        echo $data;

我需要的是在控制器中有这个 $ data = array(“1”,“2”,“3”); ,这就是TableName中的所有ID。有人能告诉我我该怎么做?

1 个答案:

答案 0 :(得分:1)

在蛋糕3中,您可以使用集合

$allid = $this ->TableName->find()
    ->select(['id'])
    ->where(['User_id' => '1']);

$allid = $allid
    ->extract('id')
    ->toArray();

请参阅手册here

而不是提取 - 如果你需要获取表示数组的字符串 - 你可以使用map和reduce()

$allid = $allid
   ->map(function ($value, $key) {
        return '"'.$value->id.'"';
    })
    ->reduce(function ($accumulated, $value) {
        return $accumulated.", " .$value;
    });