gpt4 book ai didi

php - Cakephp:使用一个命令字段将多个记录添加到单个模型

转载 作者:太空宇宙 更新时间:2023-11-03 12:20:21 24 4
gpt4 key购买 nike

我想在 cakephp 中将多条记录添加到单个模型。我一直在关注他的教程 http://bit.ly/1jjR1U5它就像魅力一样。但我需要对他的代码进行微调。我需要将表单中的一个字段设为所有多条记录的通用字段并保存模型。我已经在下面清楚地解释了他的代码和我需要的东西。

下面是他将多条记录添加到单个模型的代码。在 add.ctp 中:

echo $this->Form->create('Model');
for($i = 0; $i < $count; $i++){
echo $this->Form->input("Model.$i.field1", array());
echo $this->Form->input("Model.$i.field2", array());
echo $this->Form->input("Model.$i.field3", array());
echo $this->Form->input("Model.$i.field4", array());
}
echo $this->Form->end('add');

在 Controller 中,即 ModelController.php 中的 add() 操作,

function add($count = 1){
if($this->request->is('post')){
if($this->Model->saveAll($this->request->data['Model'])){
$this->Session->setFlash(__('The Model has been saved'));
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The Model could not be saved. Please, try again.'));
}
$this->redirect(array('action' => 'index'));
}
$this->set('count', $count);
}

以上代码将在表中创建多个插入。我要的是add.ctp形式,

echo $this->Form->create('Model');
echo $this->Form->input("field1", array());
for($i = 0; $i < $count; $i++){
echo $this->Form->input("Model.$i.field2", array());
echo $this->Form->input("Model.$i.field3", array());
echo $this->Form->input("Model.$i.field4", array());
}
echo $this->Form->end('add');

这里我希望字段 1 对要插入表中的记录是通用的。我不想循环它,因为客户端必须在每次迭代中为字段 1 选择相同的选项。如果有人知道如何使用 cakephp Controller 或表单实现此目的,请分享您的建议。

最佳答案

试试这个

$this->request->data = Hash::insert($this->request->data, 'Model.{n}.field1', $this->request->data['Model']['field1']);
$this->request->data = Hash::remove($this->request->data, 'Model.field1');
if($this->Model->saveAll($this->request->data['Model'])) {
// your stuff goes here
}

关于php - Cakephp:使用一个命令字段将多个记录添加到单个模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20369780/

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