0

我正在尝试使用Request::factory()方法在 Kohana 的视图文件中回显一个请求,并且我在该请求中发送一个我无法在User控制器中获取的值,这是我的代码:

视图文件:

<h1> Welcome to My First View File </h1>
<?php echo Request::factory("user",array("id" => 123))->execute(); ?>

然后User.php控制器有这个代码:

<?php defined('SYSPATH') or die('No direct script access.');

class Controller_User extends Controller {

    public function action_index()
    {
        $value = $this->request->param('id');

        $content = View::factory('menu')->bind("id", $value);

        $this->response->body($content);
    }            

} // End User

并且视图menu.php具有以下代码:

<h2> This is the view called by Request and Parameters send was: 
     <?php echo $id; ?>
</h2>

当我运行代码时它显示文本This is the view called by Request and Parameters send was:但它不显示$id任何人都可以告诉我为什么?

PS:对不起我的英语不好,因为它不是我的母语

4

1 回答 1

1

在这里您可以看到,这Request::factory()需要URI第一个参数的值。所以,你应该这样称呼:

<h1> Welcome to My First View File </h1>
<?php echo Request::factory(Route::get("user")->uri(array("id" => 123)))->execute(); ?>

或者

<h1> Welcome to My First View File </h1>
<?php echo Request::factory("user/123")->execute(); ?>

第一个示例使用反向路由,其中​​“用户”是一个Route名称。我假设您已经拥有Route处理URI'/user/123' 之类的 s。

于 2012-11-19T08:10:11.377 回答