【问题标题】:Kohana 'Model not found' in Amazon EC2Amazon EC2 中的 Kohana“未找到模型”
【发布时间】:2015-08-22 04:30:23
【问题描述】:

我有一个在 linux 服务器上运行的 Kohana 3.3 项目,我将其移至 Amazon EC2 linux 实例。

它正确加载所有'classes/Model/xxxxx.php'模型,但如果模型没有文件定义(仅驻留在数据库中的模型)则失败,显示“找不到模型”错误。

另外,我对模型的属性有一些问题,显示“Model_Bbbbbb 类中不存在 aaaaaa 属性”

我知道 Kohana >3.2 上的 PSR-0 实施

找不到模型错误:

ErrorException [ Fatal Error ]: Class 'Model_role' not found

属性错误:

Kohana_Exception [ 0 ]: The team property does not exist in the Model_User class

这些是我的实现:

/application/classes/Model/user.php

class Model_User extends Model_Auth_User
{
    public function rules()
        {
        …
        }
    protected $_has_many = array(
        'team' => array('through' => 'user_teams'),
    );
}

数据库表:

  • 角色
  • 用户
  • user_teams

由于这段代码在以前的 linux 服务器上运行,我丢弃了 PSR-0 问题,我认为这是 Amazon Linux AMI 的错误配置。

有什么想法吗?

【问题讨论】:

  • 在 Kohana 中,没有仅驻留在数据库中的模型(但在 MODPATH/SYSPATH 中定义的模型)。缺失模型错误在哪里触发?它应该声明Model_Role(而不是role)

标签: mysql amazon-web-services nginx amazon-ec2 kohana


【解决方案1】:

找不到模型错误:

ErrorException [致命错误]:找不到类“Model_role”

您需要为每个模型创建一个 PHP 类。有可能是很简单的,比如class Model_Role extends ORM {},但是需要存在并且放在正确的目录下才能自动加载。

属性错误:

Kohana_Exception [ 0 ]:团队属性不存在于 Model_User 类

您可能需要更新Model_User 中的$_table_columns 属性以包含team 字段。另一种可能性是您的数据库在users 表中没有team 列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-27
    • 2014-05-07
    • 2023-03-25
    • 1970-01-01
    • 2015-11-05
    相关资源
    最近更新 更多