Database cakephp不从表中提取数据

Database cakephp不从表中提取数据,database,cakephp,associations,Database,Cakephp,Associations,我的网站/数据库的设置是为了让用户拥有TM帐户,这样当一个人创建一个帐户时,数据就会保存在accounts\u users表中。一个人登录(使用用户表中的信息)并创建模板,问题是accounts\u templates表没有从accounts\u users表中提取accountid,并且抛出数据库错误 用户的帐户 用户hambt帐户 帐户有很多模板 属于帐户的模板 有帐户模板,其中包含id、帐户id、模板id 存在帐户用户,其中包含id、帐户id、用户id 有一些模板包含id、名称、描述、活动

我的网站/数据库的设置是为了让用户拥有TM帐户,这样当一个人创建一个帐户时,数据就会保存在accounts\u users表中。一个人登录(使用用户表中的信息)并创建模板,问题是accounts\u templates表没有从accounts\u users表中提取accountid,并且抛出数据库错误

用户的帐户

用户hambt帐户

帐户有很多模板

属于帐户的模板

有帐户模板,其中包含id、帐户id、模板id

存在帐户用户,其中包含id、帐户id、用户id

有一些模板包含id、名称、描述、活动

存在包含id、公司名称、邮政编码、abn的帐户

存在包含id、用户名、密码的用户

模板模型

<?php
    class Template extends AppModel{ 
    var $name='Template'; 
    public $useTable = 'templates';
    public $primaryKey = 'id';

    public $belongsTo = array(
        'Account' => array(
            'classname' => 'Account',
            'foreignKey' =>'account_id'
            )
        );
    }
从模板控制器添加函数

function add(){

    if($this->request->is('post')){

    $this->Template->create(); 

    if ($this->Template->save($this->request->data)) 
    { 
        $this->Session->setFlash('The template has been saved');
        $this->redirect( array('controller' => 'Fields','action' => 'add'));

    }
    else { $this->Session->setFlash('The template could not be saved. Please, try again.'); } 
    } 

  }

我看不到您的数据库,但从您的问题判断,可能有几个错误:

user_accounts
在Cakephp中,联接表的名称错误。应该是:

accounts_users
id, account_id, template_id
复数和按字母顺序排列

如果您创建一个 帐户模板 连接表,这意味着帐户HABTM模板。你说这是一个很好的选择。要么是HasMany,然后不需要连接表,要么是HABTM,您应该在模型中这样说

编辑:好的。在你的问题中,你写道:

accounts_templates which contains id, accounts_id, templates_id
应该是:

accounts_users
id, account_id, template_id
奇异的


事实上,没有您所谓的帐户模板模型。一个帐户有一个模板,然后一个模板有多个帐户

因此,对于此任务,您应该有两个模型: 帐户和模板

Account Model

var $hasOne = array(
    'Template' =>
        array(
            'className'=>'Template',

            )
        );

Template Model

public $hasMany = array(
    'Account' => array(
        'classname' => 'Account',
        'foreignKey' =>'Template_id'
        )
    );

你能更清楚地描述一下这些关系吗?当前的一个听起来像个谜刚刚更新为easieri我可能复制不正确,给我2分钟,我会更新表名等cWhoops,它们是单数的,新笔记本电脑仍然习惯在这里打字:(反过来说,账户有很多模板。一家企业可以创建多个模板,而一个模板属于一个账户。好吧,根据你的看法调整你的关系,但记住我在第一段第一句中的看法。