我希望進行排序,我動態創建在formatResults()
CackePHP 3 formatResults()令動態創建
$users = $this->Users
->find('all')
->formatResults(function ($users) use ($lat, $lng) {
return $users->map(function ($user) use ($lat, $lng) {
$user->distance = getDist($lat, $lng);
return $user;
});
})
->order([
'distance' => 'ASC'
]);
[...]
$this->set('users', $this->paginate($users));
字段$user->distance
不在數據庫中的一個字段。 $user->distance
包含一個浮點數(getDist($lat, $lng);
),該浮點數根據用戶在他的請求時的位置而變化。
->order([
'distance' => 'ASC'
]);
返回一個錯誤:Column not found: 1054 Unknown column 'Users.distance' in 'order clause'
我的問題是這樣的:我可以排序從用戶接收信息時,我已動態創建一個領域?
謝謝你,我的函數'getDist()'是可操作的,所以我不需要插件,所以我會研究一個用MySQL替代 – eclaude