15

きれいな URL を生成するためにスラッグを使用している人がいると聞いたことがあります。私はそれがどのように機能するのか分かりません。現在、私はこのようなURLを生成するcodeigniterサイトを持っています

www.site.com/index.php/blog/view/7

スラッグフィールドを維持することで私が理解していることから、次のようなURLを達成することが可能です

www.site.com/index.php/blog/view/once-upon-a-time

これはどのように行われますか?特にコードイグナイターに関しては?

4

3 に答える 3

54

スラッグをデータベーステーブルの という列に保存し、slug次のようにスラッグを含む投稿を見つけます。

public function view($slug)
{
    $query = $this->db->get_where('posts', array('slug' => $slug), 1);

    // Fetch the post row, display the post view, etc...
}

また、投稿のタイトルからスラッグを簡単に取得するにurl_title()は、URL ヘルパーを使用するだけです。

// Use dashes to separate words;
// third param is true to change all letters to lowercase
$slug = url_title($title, 'dash', true);

ちょっとしたおまけ: 列に一意のキー制約を実装したい場合がありslugます。これにより、各投稿に一意のスラッグがあり、CodeIgniter がどの投稿を探すべきかがあいまいになりません。もちろん、おそらく最初から投稿に固有のタイトルを付けるべきですが、それを配置することでルールが強制され、アプリケーションが台無しになるのを防ぐことができます。

于 2010-07-22T04:33:42.430 に答える
3

Eric Barnes による CI スラッグ ライブラリを使用できます。

https://github.com/ericbarnes/CodeIgniter-Slug-Library

于 2013-12-14T14:05:58.180 に答える