【问题标题】:Error: SQLSTATE[42S02]: Base table or view not found错误:SQLSTATE[42S02]:未找到基表或视图
【发布时间】:2012-10-16 00:15:17
【问题描述】:

我使用的是 CakePHP 2.2.3 版。将我的数据库导入 PHPMyAdmin 后,我继续创建我的 MVC 唱 CakePHP 的烘焙控制台。这一切都很顺利,我宣布了我的关系等等......

在创建最后一个“视图”时出现问题(所有模型/控制器均已创建且没有错误)。

完整的错误是:错误:SQLSTATE[42S02]: Base table or view not found: 1146 Table 'website.connections' doesn't exist

我可以确认它确实存在,包括表、控制器、模型和视图!

我非常困惑,任何帮助将不胜感激。

非常感谢。

更新

在“成员”模型中,在注释掉与连接相关的“有很多”代码时,该错误会出现在其下方的下一个关系中。关系代码为:

public $hasMany = array(
    'Connections' => array(
        'className' => 'Connections',
        'foreignKey' => 'Member_ID',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
    'Recommendations' => array(
        'className' => 'Recommendations',
        'foreignKey' => 'Member_Being_Recommended_ID',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    ),
    'Groups' => array(
        'className' => 'Groups',
        'foreignKey' => 'Member_ID',
        'dependent' => false,
        'conditions' => '',
        'fields' => '',
        'order' => '',
        'limit' => '',
        'offset' => '',
        'exclusive' => '',
        'finderQuery' => '',
        'counterQuery' => ''
    )
);

因此,一旦“连接”关系被注释掉,错误就会转移到建议,即它下面的那个。

【问题讨论】:

    标签: cakephp cakephp-2.2


    【解决方案1】:

    根据 CakePHP 的 conventions,所有模型名称都应该是单数而不是复数,所以这是您应该首先解决的问题。

    【讨论】:

    • 看来单数命名模型解决了这个问题!谢谢 ADmad,享受 50 点奖励积分 ;)
    【解决方案2】:

    很抱歉听起来重复,但您收到此错误,因为在您的应用连接到的数据库中找不到表 (website.connections)。

    以下提示可帮助您解决此问题:

    1. 使用 PHPMyAdmin 验证表(连接)是否存在以及它是否在数据库(网站)中。如果您使用共享主机,您的数据库名称可能有一个您无法控制的前缀(即您的用户名_网站)。

    2. 确保您连接到正确的数据库 (config docs)。

    3. 如果您有一个名为 Connection 的模型不使用表,请确保将 public $useTable = false; 添加到它。

    【讨论】:

    • 您好劳伦斯,感谢您的回复。我可以确认“连接”在数据库中,因为它在我尝试创建模型、控制器或视图时显示。它肯定在 PHPMyAdmin 中,与其他 6 个表一起,我什至为它制作了一个模型、控制器和视图!我需要创建“成员”的另一个视图与它有一对多的关系,但这肯定不重要吗?
    猜你喜欢
    • 2016-06-21
    • 2018-03-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-09
    • 2020-11-24
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多