2012-08-10 3 views
1

제가대신 Cakephp의 URL에 이름을 표시 하시겠습니까? (I의 이름을 보낼 수 :

내가 아래와 같이 앵커 태그를 사용하여 제어기의 값을 송신하고 사용자 프로파일 페이지 USER_ID 사용하여 사용자 프로파일을 표시하고 , CakePHP의 환경에서 애플리케이션을 만든 고유하지 않기 때문에). 사용자 컨트롤러에서

<a href="https://stackoverflow.com/users/<?php echo $result['user']['id'];?>">View Profile</a> 

기능 :

function viewprofile($userid){ 
// my logic 
} 

프로파일 URL은 다음과 같다 : http://www.xyz.com/users/12

내가 대신

우리가 어떻게 표시 할 수 있습니다 USER_ID 사용자의 이름을 표시 할 이름 (슬러그 포함)은 cakephp의 URL에 있습니다.

제발 도와주세요

+0

귀하의 질문은 혼란 스럽습니다. 가능한 한 최선을 다했지만, 자신이 모순 된 이후로 무엇을 요구하는지 말하기는 어렵습니다. 적어도 두 번. – Dave

+0

안녕하세요 Dave : Actully 내 사용자 테이블에 user_id, username, address ... 등이 있습니다. user_id를 사용하여 사용자 기록을 가져 와서 user_id를 컨트롤러에 전달합니다. cakephp에 전달 된 값은 위에서 언급 한 URL에 표시됩니다. 이제 ID 번호가 – vin

+0

k가 아닌 사용자의 이름을 보여주고 싶습니다. 이름을 표시하십시오. 아직도 네가 무엇을 요구하는지 모르겠다. – Dave

답변

1
echo $this->Html->link('View Profile', array(
    'controller' => 'users', 
    'action'=> 'view', 
    $result['user']['slug'] 
)); 
1

3 가지를해야합니다.

  1. '(데이브

    전에 언급 한 코드

    는 $ this- 에코>, HTML> 링크와 링크를 만듭니다

  2. 을 (당신이 ;-) 이미이있을 수 있습니다) 고유의 사용자 굼벵이 만들기 ('컨트롤러'=> '사용자', '동작'=> '보기', $ 결과 [ '사용자'] [ 'slug']));

  3. 라우터 :: 연결 ('/ 사용자/*', 배열 ('컨트롤러'=> '사용자'와 (/app/condig/routes.php를) 할 수있는 어떤 라우팅에게, 'action'=> 'view'));

지금 당신은 꽤 URL을 얻을 것이다 슬러그이 코드를

echo $this->Html->link('View Profile',array('plugin' => false, 
              'controller' => 'users', 
              'action' => 'view', 
              "slug"=>$data['slug'])); 

그리고 당신의 경로에 시도하여 사용자 테이블

0

에서 사용자를 찾을하는 데 사용할 수있는 매개 변수가 될 것입니다 파일

Router::connectNamed(array('slug')); 
    Router::connect('/user/:slug', array(
     'plugin' => false, 
     'controller' => 'users', 
     'action' => 'view', 
     ),array(
      "pass"=>array("slug") 
     ) 
    ); 
관련 문제