0

ルーティングパラメータと集合関数の使い方がわからないようです。これが私がしたことです:

Config / routers.php:

Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'));

Controller / ProfessionalsController.php:

public function display($linkname = null) {
    $this->set('test', $linkname);
    //$this->set('profession', $this->findByLinkname($linkname));
}

View / Professionals / display.ctp:

<?php echo $test; ?>

/ Professionals / testを開くと、ページが空になっています。なんで?(ご覧のとおり、$ testは単なるテストです。私が本当に意図したことをコメントアウトしました。しかし、それも機能していません)

4

2 に答える 2

1

わかりました、RFTM... 公式本で見つけました。パラメータを渡すには、次のように指定する必要があります。

Router::connect('/professions/:linkname', array('controller' => 'professions', 'action' => 'display'), array('pass' => array('linkname'));

今では動作します。

于 2012-08-14T21:27:08.647 に答える
0

ここのCakePHP Bookであなたが求めていることを行う方法を詳細に説明しています:

http://book.cakephp.org/2.0/en/development/routing.html#passing-parameters-to-action

または、Eikeの答えに従って(ただし、失礼の少ない方法で)、これを試してください:

Router::connect(
    '/professions/:linkname',
    array(
        'controller' => 'professions',
        'action' => 'display'
    ),
    array(
        'pass' => array(
            'linkname'
        )
    )
);

明らかに、それが簡単な場合、または好みに合う場合は、これをすべて 1 行に入れることができます。

于 2012-08-14T21:37:37.470 に答える