質問

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で検索することもできます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top