Cakephp特殊字段与当前字段列表合并
我在模型中有以下查询:
$params = array(
'fields' => array('User.id','User.username', 'User.lat', 'User.lng', 'User.thumbnail_image', 'User.status',
"6371 * ACos( Cos( RADIANS( User.lat ) ) * Cos( RADIANS( $lat ) ) * Cos( RADIANS( $lng ) - RADIANS( User.lng ) ) + Sin( RADIANS( User.lat ) ) * Sin( RADIANS( $lat ) ) ) AS distance"),
'recursive' => 1,
'limit' => 15,
'offset' => $offset,
//'conditions' => array('Friend.user_id' => $user_id, 'Interest.interest' => $interest, 'Favourite.favourite' => $favourite),
//'order' => array($order)
);
$find = $this->find('all',$params);
return $find;
上面生成如下所示的内容:
Array
(
[0] => Array
(
[User] => Array
(
[id] => 2
[username] => hybmg571
[lat] => 12
[lng] => 22
[thumbnail_image] =>
[status] => 0
)
[0] => Array
(
[distance] => 1083.10516386871
)
我想要的是将这个距离与用户数组合并。 有没有办法将距离合并到用户密钥中?
I have below query in model:
$params = array(
'fields' => array('User.id','User.username', 'User.lat', 'User.lng', 'User.thumbnail_image', 'User.status',
"6371 * ACos( Cos( RADIANS( User.lat ) ) * Cos( RADIANS( $lat ) ) * Cos( RADIANS( $lng ) - RADIANS( User.lng ) ) + Sin( RADIANS( User.lat ) ) * Sin( RADIANS( $lat ) ) ) AS distance"),
'recursive' => 1,
'limit' => 15,
'offset' => $offset,
//'conditions' => array('Friend.user_id' => $user_id, 'Interest.interest' => $interest, 'Favourite.favourite' => $favourite),
//'order' => array($order)
);
$find = $this->find('all',$params);
return $find;
Above generates something like below:
Array
(
[0] => Array
(
[User] => Array
(
[id] => 2
[username] => hybmg571
[lat] => 12
[lng] => 22
[thumbnail_image] =>
[status] => 0
)
[0] => Array
(
[distance] => 1083.10516386871
)
What I want is to incorporate this distance with User array.
Is there a way we can incorporate distance into User key?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用虚拟字段。
(或者如果模型已有虚拟字段,则
$this->virtualFields[ 'distance' ] = "..."
)Use a virtual field.
(or if the model already has virtual fields,
$this->virtualFields[ 'distance' ] = "..."
)