kohana 3.2为名称中带下划线的表创建模型

时间:2014-09-07 12:40:03

标签: php kohana kohana-3 kohana-orm kohana-3.2

我在为名为 product_details 的表创建模型时遇到问题,有时搜索后,我找到了这个答案

Kohana 3.2: Calling model with underscore in name

根据答案,我采取了以下方法。我创建了 Model_Product_Details ,然后我声明了protected $_table_name = 'product_details';,然后将其保存在 application / classes / models / product_detail.php

我在控制器中使用此代码调用它:

$product_details = ORM::factory(product_detail);
但该死的,它没有用。返回的错误是ErrorException [ Fatal Error ]: Class 'Model_Product_detail' not found

我尝试通过删除下划线重命名表,模型和文件名,但它确实有效。但问题是我使用的数据库来自遗留系统,因此我无法更改其名称。我希望能立即给我帮助。

3 个答案:

答案 0 :(得分:2)

您描述的问题不是缺失或错误名称表,而是对象名称。 当在模型名称中使用下划线时,在Model_部分之后,每个下划线都应该作为文件夹。对于名为Model_Product_Details的类,Kohana希望文件details.php位于models / product / details.php文件夹中。

protected $_table_name = 'product_details'; 

应该以正确的方式指向表格

答案 1 :(得分:0)

在我第三次提供的链接(我认为)上分析了答案之后,参考我已经完成的方法,我只需要从文件名和模型名称中删除下划线。

所以这就是解决问题的方法。假设您有一个名为 product_details 的表。您必须在内部创建 Model_ProductDetail ,声明 protected $ _table_name ='product_details'; 然后将其另存为 productDetail.php

答案 2 :(得分:0)

在这种情况下,您需要将模型重命名为productDetails。 Kohana在model/product子目录中搜索此模型。请在此处查看:link

“当不希望创建新的目录级别时,应使用CamelCased类名。”

相关问题