gpt4 book ai didi

CakePHP 保存表单数据,然后通过另一个 Controller 方法将其传递给 View

转载 作者:行者123 更新时间:2023-12-02 15:56:51 24 4
gpt4 key购买 nike

我有一个游戏模型、 View 和 Controller ,以及一个创建新游戏记录的新游戏 Action 。效果很好。

然后,我希望在 session 中或作为传入数组(但作为 URL 参数不可见)使 main_game_view.ctp 可以使用该表单数据。我不介意它是在 session 中完成还是传入,以效率更高者为准。

我尝试了各种不同的组合,设置这个,写那个,传递另一个,但到目前为止没有任何效果。这是我最近一次失败后的代码。 GamesController 新游戏操作:

public function newgame() {
if ($this->request->is('post')) {
$this->Game->create();
$this->Session->write('Game',$this->request->data);
if ($this->Game->save($this->request->data)) {
// Put the id of the game we just created into the session, into the id field of the Game array.

$this->Session->write('Game.id',$this->Game->getLastInsertID());
$this->redirect(array('action' => 'main_game_view'));
} else {
$this->Session->setFlash('There was a problem creating the game.');
}
}
}

将游戏 ID 写入 session 效果非常好,当我 read() 时,我可以在 main_game_view 中看到它。但是无论我将请求数据的 session 写入放在哪里,我都无法在main_game_view中找到它。

同样,如果我尝试将任何内容传递到重定向中,我在 main_game_view 操作或 main_game_view View 本身中都找不到它。

目前我的 main_game_view 操作只是一个空函数,但在尝试通过重定向传递数据后我找不到任何内容。

这是 main_game_view.ctp:

<?php debug($this->viewVars); ?>

<p><?php echo 'Game id: ' . $this->Session->read('Game.id') ?></p>
<p><?php echo 'Game name: ' . $this->Session->read('Game.game_name') ?></p>

Game.id 很好,但是 Game.game_name 中没有任何内容(这是模型中的有效字段名称。我所有传递变量的尝试也都失败了,调试行只显示:array()。

这看起来很简单,遵循了 CakePHP 博客教程并调整它来创建/编辑/删除游戏实例,但显然有些东西还没有完全理解...

最佳答案

仅通过编写以下内容,您在 session 中没有 Game.game_new 键: $this->Session->write('Game',$this->request->data); 显然你必须在 main_game_view 中做这样的事情:

<?php $game = $this->Session->read('Game'); ?>
<p><?php echo 'Game id: ' . $this->Session->read('Game.id') ?></p>
<p><?php echo 'Game name: ' . $game['Game']['game_name']; ?></p>

关于CakePHP 保存表单数据,然后通过另一个 Controller 方法将其传递给 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12934975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com