2016-07-21 18 views
0

Ich habe Artikel in meiner Yii Web-Anwendung, ich möchte Artikel Titel statt ID an der URL anzeigen, ich habe diesen Link folgen: http://www.yiiframework.com/forum/index.php/topic/43874-urlmanager-show-title-instead-of-id/ i geändert createUrl Funktion sein:View Artikel Titel auf URL anstelle von ID in yii 1 Web-Anwendung für SEO hübsche URLs

Yii::app()->createUrl('home/article',array('id'=>$article->id,'title' => $article->title); 

und die folgenden Regeln uRL Manager hinzufügen, wie unten:

 '<action:\w+>'=>'home/<action>', 
      '<action:\w+>/<id:\d+>'=>'home/<action>', 
      '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
       'article/<id>/<title>'=>'home/article/view/' 

Artikel url jetzt mag: http://localhost/test/article?id=6 i wa nt zu sein
http://localhost/test/article/article-title

danke im voraus.

+0

Ist Ihr Artikel Titel einzigartig oder was –

+0

Nein tut es nicht. –

Antwort

1

Ich mache etwas ähnliches, aber Sie möchten nicht vermeiden, eine eindeutige ID zu verwenden, um Ihren Artikel zu finden, weil Sie sich nicht darauf verlassen können, dass Titel einzigartig sind oder sich gar nicht ändern.
Es ist eine gute Übung, um nicht eine autonumeric Id zumindest öffentlich in der URL zu verwenden, so könnte man so etwas wie dieses:
"article/<key:\w{6}>/<title>"

So werden die URLs wie: article/e87qy2/The_book_title_here Und Sie nur den Titel ignorieren und verwenden Sie die Schlüssel, die für jeden Artikel eindeutig sein müssen.
Natürlich ist ein alphanumerischer Hash oder Schlüssel nicht sehr verschieden von einer numerischen ID, aber zumindest haben Sie aufschlussreiche interne Informationen über Ihre Datenbank verloren, indem Sie angezeigt haben, dass Sie über automatische Primärschlüssel verfügen.

Wenn Sie wirklich wirklich nur den Titel in der URL haben wollen, dann stellen Sie zunächst sicher, dass jeder neu erstellte Artikel eindeutig ist, und verwenden Sie ihn dann als eindeutigen Schlüssel, um den Artikel zu finden.
Um zwei gleiche Artikel zu vermeiden, müssen Sie möglicherweise die Nummern 2, 3 usw. am Ende hinzufügen, um sie anders zu machen.