gpt4 book ai didi

php - 编辑 hasMany 关联中的项目 (CakePHP)

转载 作者:行者123 更新时间:2023-11-29 23:26:12 27 4
gpt4 key购买 nike

我在Mysql中有两个表:

1- 项目

列:id、名称、价格、category_id、创建

2-类别

列:id、名称、创建

类别有很多项目,项目属于类别:

Class Item extends AppModel {
public $belongsTo = 'Category';
}

lass Category extends AppModel {
public $hasMany = 'Item';
}

我想编辑给定的项目,因此我想显示可能的类别名称以选择一个。

查看/项目/edit.ctp

<h1>Edit Post</h1>
<?php
echo $this->Form->create('Item');
echo $this->Form->input('name');
echo $this->Form->input('price');
echo $this->Form->input('category_id');
echo $this->Form->input('created');
echo $this->Form->input('id', array('type' => 'hidden'));
echo $this->Form->end('Save Post');
?>

Controller /ItemsController.php

public function edit($id = null){
if (!$id) {
throw new NotFoundException(__('Invalid Item'));
}
$item = $this->Item->findById($id);

if (!$item) {
throw new NotFoundException(__('Invalid Item'));
}

if (!$this->request->data) {
$this->request->data = $item;
}

if ($this->request->is(array('post', 'put'))) {
$this->Item->id = $id;
if ($this->Item->save($this->request->data)) {
$this->Session->setFlash(__('Your item has been updated.'));
return $this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('Unable to update your item.'));
}
}

问题是:在表单的category_id中,我看不到任何内容,甚至连类别ID号也看不到。

最佳答案

您需要在 Controller 中设置一个$categories变量;

$this->set('categories', $this->Item->Category->find('list'));

关于php - 编辑 hasMany 关联中的项目 (CakePHP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26938590/

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