1

Cakephp 環境でアプリケーションを作成しました。ユーザー プロファイル ページで user_id を使用してユーザー プロファイルを表示しています。

以下のようなアンカータグを使用してコントローラーに値を送信しています: (一意ではないため、名前を送信できません)。

<a href="/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に名前(スラッグ付き)を表示するにはどうすればよいですか

私を助けてください

4

3 に答える 3

1

あなたは3つのことをしなければなりません。

  1. 独自のユーザー スラッグを作成します (すでにお持ちの場合があります ;-) )

  2. Dave が前述したコードを使用してリンクを作成します

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

  3. ルーティングに何をすべきかを伝えます (/app/condig/routes.php)。

    Router::connect('/user/*', array('controller' => 'users', 'action' => 'view'));

これで、きれいな URL が取得され、スラッグは User テーブルでユーザーを見つけるために使用できるパラメーターになります。

于 2012-08-22T23:25:13.213 に答える
1
echo $this->Html->link('View Profile', array(
    'controller' => 'users',
    'action'=> 'view',
    $result['user']['slug']
));
于 2012-08-10T21:22:08.253 に答える
0

このコードを試してください

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

そしてあなたのRoutesファイルで

Router::connectNamed(array('slug'));
    Router::connect('/user/:slug', array(
        'plugin' => false,
        'controller' => 'users', 
        'action' => 'view',
        ),array(
            "pass"=>array("slug")
        )
    );
于 2013-03-02T10:45:47.617 に答える