내가 YII r1.8에 Custom URL Rule Classes을 활용하기 위해 노력하고YII는 사용자 정의 URL 규칙 클래스 사용 r1.8
I 표시하는 대신 여러 조직 /보기/아이디/24과 같은 일을하고 애 쓰고 db의 Name으로 식별되는 조직의 이름 (즉, www.mysite.com/orgs/view/id/24를 www.mysite.com/jaysshop으로 동적으로 변경). 불행히도 나는 그것을 작동시키지 않을 것이다. 여기
내 코드입니다 :class OrgsUrlRule extends CBaseUrlRule
{
public $connectionID = 'db';
public function createUrl($manager,$route,$params,$ampersand)
{
if ($route==='orgs/view/id') //even tried 'orgs/view' or 'orgs/index'
{
if (isset($params['Name']))
return $params['Name'];
else if (isset($params['Name']))
return $params['Name'];
}
return false;
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo)
{
if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches))
{
}
return false;
}
}
urlManager :
array(
'class' => 'application.components.OrgsUrlRule',
'connectionID' => 'db',
),
여기서 무엇을하고 싶은지 완전히 명확하지 않습니다. 고객이 org/view/id/24 URL을 입력하고 jaysshop으로 리디렉션하고 싶습니까? 아니면 코드에서 표시 할 URL을 만들려고합니까? createUrl 함수에 대해 잘못된 생각을했을 수도 있습니다. 귀하의 사이트 어딘가에서 createUrl 기능을 사용할 때 사용됩니다. 실제로 페이지 뷰를 만들고 싶다면 url을 "번역"하려면 parseUrl 함수가 필요합니다. – Blizz
@Blizz 당신이 말하는 바를 이해 합니다만, Yii r1.8 (링크 된 위)에있는이 새로운 기능을 사용하면 URL 재 작성을 처리하는 urlManager가 표시됩니다. urlManger에서 'events'=> 'events/index'와 같이 www.mysite.com/events/index 대신 www.mysite.com/events를 입력하도록 할 수 있습니다. 내가 읽었을 때 맞춤 URL 규칙 클래스를 사용하면보다 광범위하지만 세분화 된 방식으로 동일한 작업을 수행 할 수 있습니다. – enfield
@Blizz이 포럼 질문에서 [사용자 이름이있는 URL 필요, 페이스 북과 유사] (http://www.yiiframework.com/forum/index.php?/topic/10829-need-of-url-with-usernameame) -symilar-to-facebook /) 그들은 변수로 무엇을하고 싶은지 알았지 만 이해와 사용을 위해 노력하고있는 Yii r1.8의 추가 기능이 출시되기 훨씬 전에 – enfield