2012-11-12 43 views
1

我正在開發一家餐廳的移動網站,並且正在尋找基於一天中的時間執行路線。CakePHP,根據一天中的時間路由到視圖

因此,例如,如果它的下午1點,默認情況下應用程序路由到午餐菜單。 如果是凌晨2點,應用程序將轉到深夜菜單。

任何想法如何在Cake 2.X Framework內做到這一點?

回答

2

我會實現一個自定義路由器來處理這個問題,以保持事物的清潔和「Cakey」。

http://book.cakephp.org/2.0/en/development/routing.html#custom-route-classes

或者你也可以加一些條件,你的路由配置。像下面的東西,但顯然我不知道你的確切路線。時間邏輯將類似,無論您選擇給我們哪一種方法。

應用程序/配置/ routes.php文件

$hour = date('G'); 

if ($hour >= 13 && $hour < 18) { 
    $menu = 'lunch'; 
} elseif ($hour >= 18 || $hour < 2) { 
    $menu = 'dinner'; 
} elseif ($hour >= 2 && $hour < 6) { 
    $menu = 'late'; 
} else { 
    $menu = 'breakfast'; 
} 

Router::connect('/menu', array('controller' => 'menus', 'action' => $menu)); 
+0

謝謝,這個效果很好! –

-1

要考慮的事情是這樣的邏輯是否應該在你的路由文件。對我來說,這個邏輯屬於一個模型,即你將有一個getMenu($hour)方法,它返回菜單取決於時間。