Як усталяваць URLs ад дзеяння кантролера ў CakePHP?

Я ствараў сайт сацыяльнай сеткі, у тым, што на кожнай старонцы профілю неабходна, каб паказаць з дапамогай SEO Friendly URL.

Цяпер яго як www.siteprof.com/profile/23
мне трэба дадаць радок «aditioanl-вэб Джэйк-распрацоўшчык» у канцы гэтага URL. Вынік будзе як <б> www.siteprof.com/profile/23/jake-web-developer . Я ведаю, што гэта можа быць зроблена, калі мы ствараем профільныя спасылкі. Але калі хто-то гэты профіль, выкарыстоўваючы www.siteprof.com/profile/23 гэтую спасылку, можа я дадаць, што папярэдні тэкст у URL?

Акрамя таго, ці ёсць спосаб, каб дадаць такога роду канкрэтнай радкі ў URL з дзеяння кантролера?

1

2 адказы

Гэта не выглядае правільна, па CakePHP канвенцыі, ён павінен выглядаць наступным чынам:

**www.siteprof.com/profiles/view/23**

Пасля гэтага вы стварылі profiles_controller мець дзеянне Выгляд ($ ID = 0, $ імя = "") Я не ведаю, чаму гэта важна, але вы можаце ствараць спасылкі з параметрам імя і ён будзе працаваць:

www.siteprof.com/profiles/view/23/jake-web-developer

Калі гэта важна, каб дадаць апошні радок, то вы павінны зрабіць рэдырэкт ў кантролеры прадстаўлення. Праверце, калі ўказана імя $, і калі гэта не так, перанакіраванне на URL з імем, хоць я б параіў супраць гэтага, бо гэта ўдар па прадукцыйнасці.

0
дададзена
Але тое, што вы не можаце мець: www.siteprof.com/profile/23/jake-web-developer. (Адсутнічае «дзеянне» у URL, калі дзеянне не называецца «23»)
дададзена аўтар Nick Zinger, крыніца
Ах, то гэта нармальна.
дададзена аўтар Nick Zinger, крыніца
Гэта не «рэальны час», калі гэта тое, што вы думаеце. Stackoverflow таксама абнавіць старонку, вы проста не бачыце яго (я бачу гэта ў Opera). Для таго, каб перанакіроўваць хутчэй вы павінны пераканацца, што рэдырэкт змяшчаецца ў пачатку дзеяння кантролера.
дададзена аўтар Nick Zinger, крыніца
Вы, вядома, можаце мець www.siteprof.com/profiles/view/23/jake-web-developer і метад подпіс віду ($ ID). Торт будзе паслужліва ігнараваць «Jake-вэб-распрацоўшчык» частка
дададзена аўтар RichardAtHome, крыніца
ў маім route.php, я перанакіроўваць гэта профіль/прадстаўленне/23
дададзена аўтар benji, крыніца
гэта перанакіраванне займае шмат часу, калі ласка, праверце URL стэка над патокам дададзена аўтар benji, крыніца

Маё рашэнне было б паставіць карыстацкі загаловак пераадрасацыі на старонцы, калі URL не ўтрымлівае SEO дружалюбны загаловак, які перанакіроўвае на поўны URL

Адзін метад павінен быў бы:

public function view($id = null, $slug = null) {

  $data = $this->Profile->findById($id);

  if ($slug == null) {

    $this->redirect(array('action'=>$view, $id, $data['Profile']['slug']));

  }

 //.. rest of view logic

}

Спадзяюся, што гэта дапамагае :-)

0
дададзена