2014-04-27 7 views
3

News라는 모듈에서 Gii가 생성 한 동작을 사용합니다. id 매개 변수 (예 : example.com/news/view/id/1)와 함께 작동하는 일반보기 동작이 있습니다.Yii app() ->보기 동작을위한 createUrl

Yii::app()->createUrl("news/view",array("id"=>$data->primaryKey)) 

그것은 example.com/news/1 생성 ($data->primaryKey 경우 1)
난 코드 줄을 사용하는 경우. 올바르지 않습니다.

Yii::app()->createUrl("news/view/id/",array("id"=>$data->primaryKey)) 

그것은 example.com/news/id/id/1 생성 ($data->primaryKey 경우 1)
난 코드 줄을 사용하는 경우.

나는 너무 혼란스러워! 첫 번째 상황에서이 함수는 id를 매개 변수 이름으로 생성하지 않고 두 번째 상황에서는이를 수행합니다. 하지만 수동으로 ID를 추가 한 후.
이 기능을 사용하여 올바른 URL 형식을 만들려면 어떻게해야합니까?

편집 : 뉴스는 모듈입니다. 나는 같은 코드의 라인을 변경 : 그것은 올바른 example.com/news/default/view/id/1를 생성

Yii::app()->createUrl("news/default/view/id/",array("id"=>$data->primaryKey)) 

,하지만 난 그 기본을 싶지 않아!

'urlManager'=>array(
      'urlFormat'=>'path', 
      'rules'=>array(
       '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
       '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
      ), 
     ), 

이 URL을 보는 방법을 만들 : config 파일에서

+0

in yii2 use :' urlManager-> createUrl ([ "post/view", "id"=> $ post-> id])?> ' –

답변

3

는이 같은 있습니다.

기본값이기 때문에 URL을 만들 때 id 매개 변수를 쓸 필요가 없습니다. urlmangaer 규칙을 봐 :

Yii::app()->createUrl("news/view/",array("id"=>$data->primaryKey)) => example.com/news/id/1 

을 모듈 defaut에에 :

Yii::app()->createUrl('/news/default/view', array('id' => $data->primaryKey)) 

당신은 당신이 당신의 URL을 보는 방법을 ... urlmanager 규칙을 만들어야합니다. 자세한 내용은 here입니다.

+0

설정 파일에 해당 코드 행이 있습니다. – JalalJaberi

0

사용

'rules'=>array(
    'news/<controller:\w+>/<id:\d+>'=>'news/<controller>/view', 
    'news/<controller:\w+>/<action:\w+>/<id:\d+>'=>'news/<controller>/<action>', 
    'news/<controller:\w+>/<action:\w+>'=>'news/<controller>/<action>', 
), 

당신은 모듈 이름 news이있는 경우.

news을 정규식으로 대체 할 수는 있지만 정규식이 너무 넓 으면 여러 정규식과 일치하는 URL에 문제가 있습니다. 규칙 배열 키에는 <module:news|accounting|people>, 규칙 배열 값에는 <module>을 사용하십시오.

보다 정교한 URL 관리가 필요하거나 정규식으로 작업을 해결할 수없는 경우 항상 CUrlManager를 확장 할 수 있습니다.

0

이 디렉토리에서 확인을 시도하십시오 : protected/config/main.php sir.


urlManager'=>array(
      'urlFormat'=>'path', 
      'rules'=>array(
       '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
       '<controller:\w+>/<action:\w+>'=>'<controll<>er>/<action>', 
      ), 
     ), 

것을 잘 전달됩니다주의하세요? :)

관련 문제