在 CakePHP 3.x 控制器中获取一列
Get one column in CakePHP 3.x controller
如何使用 sql 获取一列并将其转换为数组并在控制器中使用?
$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。谁能告诉我该怎么做?
在蛋糕 3 中你可以使用 Collections
$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;
});
如何使用 sql 获取一列并将其转换为数组并在控制器中使用?
$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。谁能告诉我该怎么做?
在蛋糕 3 中你可以使用 Collections
$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;
});