3

urlパラメーターを介して渡されたタイトルによって誰かが作成した投稿を検索する単純なcakePHPアクションがあります。最近、タイトルにコロン(:)が含まれる投稿が投稿されました。このケーキは、名前付きパラメーターとして解釈されます。

URLを作成するのはそれほど難しいことではありませんが

str_replace(':', 'BANANA!_replace_colons, YAY safenow', $name)

これを行うための標準的な、またはよりエレガントな方法があるかどうか私は興味があります。

4

2 に答える 2

1

array('action' => 'view', 'name' => $name); を使用しました。Cake は、最初のコロン以降のすべてを問題なく処理できるようです。

于 2012-11-07T18:51:54.063 に答える
1

タイトルを URL に渡したい場合は、いつでもタイトルを urlencode できます。

投稿のタイトルが「foo:bar」の代わりに

/post/foo:bar

あなたが持っている必要があります

/post/foo%3Abar

後でスラッシュを含む投稿タイトルがあり、/別の str_replace を追加する必要があるためです... または、アクセント付きの文字が含まれる可能性があります。

私の場合、タイトルのスラッグtitle_urlである「title_url」というテーブルに常に 2 番目のフィールドがあり、これを URL で使用します。したがって、私の例では、URLは次のようになります

/post/foo_bar

これは urlencode よりも人間が読める形式です。

ただし、ルーターには「グリーディ スター」 ( /*) および「トレーリング スター」 ( ) と/**呼ばれるオプションがあります。特殊文字が含まれている場合でも、パラメーターをキャプチャするのに役立ちます

お役に立てれば

于 2012-11-07T18:09:34.890 に答える