1

我的 CakePHP 应用程序中有一个名为“Profiles”的控制器,这就是我称为 index 的操作:

function index($id = NULL) {
    $this->set('profile', $this->Profile->findById($id));
}

因此,使用此方法传入 id,然后我可以根据链接中的 id 返回正确的配置文件。

当我在一个名为 view 的操作上执行此操作时,这很好用,但是当我尝试在 index 操作上执行此操作时,它会将我的 id 视为一个操作,并返回一个错误,指出该操作不存在。有没有办法在 CakePHP 中的索引动作上传递 id,或者它必须在索引之外的动作上,例如视图动作?

干杯,

亚当。

4

3 回答 3

1

如果您想将 id 传递给您的方法,则必须访问其中包含 id 的 url。

/profiles/index/<id_here>

蛋糕会/profiles神奇/profiles/index地加载。您不能/profiles/<id>开箱即用,这需要一个新的 Route 才能工作。

于 2012-12-20T08:14:09.310 回答
0

如果您使用 Bake 函数创建控制器,则 Index 方法将用于显示 Profile 模型中的多个记录。

您在问题中显示的三行代码是控制器的实际代码吗?

于 2012-12-10T00:11:37.530 回答
0

这可以通过自定义路由来完成。将参数传递给操作...

Router::connect('/mycontroller/:id', array('controller' => 'mycontroller', 'action' => 'index'), array('pass' => array('id') ) );

在你的控制器中......

public function index( $id )

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

于 2014-10-20T20:34:17.040 回答