2017-08-11 60 views
0

我有一個實體城市,有地址屬性和一個PHP函數calculate($addess)需要城市屬性地址並返回一個數字。學說秩序通過PHP函數

我嘗試使用函數calculate()的返回來訂購我的城市。 Doctrine DQL有可能嗎?我該怎麼做?

預先感謝任何指導

public function calculate($address) 
{ 
    //... 
    return $number; 
} 

我不知道這是否存在,但是這是我想要做的事:

$qb 
    ->select('u') 
    ->from('City', 'u') 
    ->orderBy(calculate($address), 'ASC') 
; 

地址必須是一個城市屬性。

+0

有點代碼會幫助 –

+0

@ t-n-y有點幫助嗎? – Achraf

+0

代碼,對不起,只是編輯它 –

回答

0

我不知道計算()邏輯的作用是什麼,但是你不能把它作爲參數給你的類嗎?比添加adress_number到你的DB和映射,並簡單地orderBy這個參數:

$qb->select('u') 
    ->from('City', 'u') 
    ->orderBy('u.adressNumber', 'ASC'); 

希望這會有所幫助。 :)

+0

但是,如果與地址對應的編號根據上下文而變化,該怎麼辦?假設請求城市列表的用戶使用某種類型的交通工具。 Wheter目前正在使用一輛自行車或一輛汽車可能會改變城市的「數量」(即排序順序),例如,在此情況下,基於自行車友好的道路網絡,例如。 –

+0

這是不可能的,因爲caluclate函數通過地理位置獲取用戶位置,然後返回用戶位置和城市之間的距離。用戶不一樣,那麼距離將不會相同。那麼城市的順序將不同於用戶對另一個用戶位置的不同。 @ DenisSt - 米歇爾 – Achraf