私はレストランのモバイル サイトの開発に取り組んでおり、時間帯に基づいたルートを実行しようとしています。
たとえば、午後 1 時の場合、アプリはデフォルトでランチ メニューにルーティングされます。午前 2 時の場合、アプリは深夜メニューにルーティングします。
Cake 2.X Framework内でこれを行う方法はありますか?
これを処理するカスタムルーターを実装して、物事をクリーンで「ケーキ」に保ちます。
http://book.cakephp.org/2.0/en/development/routing.html#custom-route-classes
または、ルート構成にいくつかの条件を追加することもできます。以下のようなものですが、明らかにあなたの正確なルートはわかりません。どの方法を選択しても、時間のロジックは似ています。
app/Config/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));
考慮すべきことは、このロジックをルートファイルに含める必要があるかどうかです。私にとって、このロジックはモデルに属しています。つまりgetMenu($hour)
、時間に応じてメニューを返すメソッドがあります。