在保存时保存相关模型的ID

时间:2012-01-19 10:25:29

标签: cakephp cakephp-2.0

我确信这有一个非常简单的解决方案,但解释很复杂,所以请耐心等待。

我有一份注册表格Registration::add(),它由三部分组成。

  1. 第一个是Registration数据,一些字段。
  2. 第二个是来自三个相关HABTM模型的复选框,RoleCategoryCategoryChild
  3. 第三是在User
  4. 中创建记录

    我的Registration模型有user_id,我需要将生成的User.id保存到该字段中。

    我确信我应该能够使用模型关系来执行此操作,因为User模型可以保存User.registration_id罚款,但它似乎没有写入{{ 1}}模型。

    我是否需要在Registration视图中创建另一个字段,以便该字段出现在add.ctp数组中?我更愿意这样做,而不是卷入$this->data->requestbeforeSave()

    所以我只需要创建

    afterSave()

    我的关系,供参考,

    $this->Form->input('Registration.user_id', array('type'=>'hidden'));
    

    我目前正在使用Registration hasOne User Registration hasAndBelongsToMany Category Registration hasAndBelongsToMany CategoryChild Registration hasAndBelongsToMany Role User hasOne Registration 保存我的所有数据,而且它正在设法保存除saveAll($this->request->data)以外的所有内容

2 个答案:

答案 0 :(得分:0)

是的,这样的事情可以按照您的问题运作:


<?php echo $form->input('Registration.user_id',array('type'=>'hidden', 'value' => $user_id)); ?>

希望有所帮助

答案 1 :(得分:0)

您的关系

Registration hasOne User

但是,您同时拥有Registration.user_idUser.registration_id,暗示您需要hasAndBelongsToMany关系。

如果你没有使用Cake Baker来生成模型,那么它非常有用。