首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在CakePHP中的“子”模型中保存信息

在CakePHP中的“子”模型中保存信息
EN

Stack Overflow用户
提问于 2018-09-29 01:07:21
回答 1查看 0关注 0票数 0

我有一个简单的CakePHP site (1.2)。我有一个页面,您可以编辑和保存人员。所以我有一个Person模型和控制器。

每个人在评论表中都没有或多个评论。所以我有一个Comment模型,我的Person模型上有一个hasMany关联到Comment模型。视图效果很好。

我的问题是,在视图Person页面上,我有一个添加注释按钮。这怎么办?我是否应该期望Person控制器包含注释记录的保存,或创建注释控制器并将其保存在一个人的关联之外?

我对PHP很有经验,但对Cake来说是全新的。

有任何想法吗?我想我只是遗漏了一些明显的东西,但我不知道该怎么做。我觉得如果这是PHP我会在我的添加注释表单中引用Person_id,因此使用一个单独的控制器,但我觉得有一个简单模型的控制器是没用的,因为注释只在Person记录的上下文中编辑。

想法?

EN

回答 1

Stack Overflow用户

发布于 2018-09-29 10:08:43

我不是CakePHP专家,但我仍然认为拥有自己的控制器是有意义的。从我记得做的那些CakePHP博客教程中,您需要链接评论模型中的评论和帖子。这是我的一些代码:

代码语言:javascript
复制
class Comment extends AppModel
{
  var $name = ‘Comment’;
  var $belongsTo = array(‘Person’);
}

然后你需要一个控制器(comments_controller.php):

代码语言:javascript
复制
class CommentsController extends AppController
{
  var $name = ‘Comments’;
  var $scaffold;
}

一些SQL:

代码语言:javascript
复制
CREATE TABLE comments (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  author VARCHAR(50),
  comment TEXT,
  person_id INT,
  created DATETIME DEFAULT NULL,
  modified DATETIME DEFAULT NULL
);

$scaffold为您创建一个CRUD应用程序,所以当你去/你的浏览器中的意见,你可以ç reate,[R EAD,ü PDATE和d elete意见。所以,正如你所看到的,这里并没有太多涉及。您只需要数据库表和提供person_id的一点逻辑。

要保存评论(在您的人员/视图中):

代码语言:javascript
复制
<h2>Add comment</h2>
<?php
echo $form->create(‘Comment’, array(‘action’=>‘add/’.$person[‘Person’][‘id’]);
echo $form->input(‘author’);
echo $form->input(‘content’);
echo $form->submit(‘Add comment’);
echo $form->end();
?>

在您的CommentsController中:

代码语言:javascript
复制
function add($id = NULL) {
  if (!empty($this->data)) {
    $this->data['Comment']['person_id'] = $id;
    $this->data['Comment']['id'] = '';
    if ($this->Comment->save($this->data)) {
      $this->Session->setFlash('Commented added');
      $this->redirect($this->referer());
    }
  }
}

所以你基本上覆盖了Cake自己添加的标准add动作。希望现在有意义。此外,您可能需要一个路线,以便它选择/评论/添加/ ID。我不知道这一部分。:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100000817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档