質問
URLにidを入れてデータベースのアイテムにマッピングするのに慣れていました:
/ hotels / 1
しかし、idが1のホテルの名前を取得してURLに入れ、スペースをハイフンに置き換えたい場合はどうなりますか
/ hotels / hotel-bianca
Kohanaを使用しており、ルーティングの概念があります(すべてのMVCフレームワークに存在します)。
これを行うにはどうすればよいですか?
解決
私はkohanaについて何も知らないので、可能なPHPの答えを提示します。
IDをURLに渡してPHPでリクエストし、ホテルの名前を渡す場合は、ホテル名をフィールドとしてデータベース内のアイテムに対応させますか?
他のヒント
この目的のために、urlという名前のdbテーブルの特別なフィールドを使用します:) たとえば、/ controller / open / urladressは、「D」を開くために「urladress」を含むurlフィールドを探します。 URIをその場で変更できるとは思わない)
コントローラーでは、データベースで名前を検索できます。私はORMでKohana 2.3.4に慣れているので、次のようにします:
// first you need to replace all hyphens with spaces
$name = str_replace('-', ' ', $parameter);
// search your db for the hotel by name
$hotel = ORM::factory('hotel')->where('name', $name)->find();
// check to make sure it is loaded
if ( ! $hotel->loaded)
{
// Do something i.e. 404 page or let them know it wasn't found
}
これにより、名前で指定できます。また、パラメータが整数であるかどうかを確認するチェックを追加し、それがあればIDで検索することもできます。
所属していません StackOverflow