【问题标题】:Cakephp: CakeDC Users plugin and save another tableCakephp:CakeDC 用户插件并保存另一个表
【发布时间】:2014-06-02 03:52:49
【问题描述】:

我正在使用 CakeDC 用户插件,我想在保存“用户”后保存“文档”。 “用户”与“文档”是一对一的关系。

我决定获取最后插入的“用户”的 ID,然后保存“Docente”。它有效,但我担心当同时插入多个用户时,为“Docente”表保存正确的“user_id”会出现问题。

所以我想问是否有一种方法可以解决“Docente”表中有关 user_id 外键的问题。

我不想过多地弄乱插件的功能,因为有些部分我很难理解。

提前致谢。

【问题讨论】:

    标签: php mysql cakephp cakedc


    【解决方案1】:

    就像 readme.md 中解释的那样,只需扩展用户模型并重载 register() 方法即可。

    public function register($postData = array(), $options = array()) {
        if (parent::register($postData, $options)) {
            // Do your additional saves here
            debug($this->data); // See the output
            return true;
        }
        return false;
    }
    

    或者在您的 Docente 模型中实现一个方法并将其附加到 Users.Model.User.afterRegister 事件。我觉得插件代码不难理解。

    【讨论】:

    • 我按照你的第一个建议重载了 Docente 模型中的方法。现在在 DocenteController 中,在“添加”方法中,我输入了这一行: $doc = $this->Docente->register($this->request->data);但我收到此错误:“错误:SQLSTATE [42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取在“注册”附近使用的正确语法在第 1 行“那么它做错了什么?
    • 好吧,我检查了 Docente 模型,扩展用户模型时出错,现在是这样 "App::uses('User', 'Users.Model'); 类Docente extends User{public $useTable = 'users';....}" 但现在我在 'docentes/add' "Undefined index: password [APP\Plugin\Users\Model\User.php, line 158 ]"
    • 那么,调试数据呢?它不存在是有原因的。没有代码就不能告诉你任何事情。 blog.teamtreehouse.com/how-to-debug-in-php
    猜你喜欢
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多