繁体   English   中英

Kohana:我应该为要用于ORM的每个表创建模型吗?

[英]Kohana: should I create models for every table I have for using with ORM?

我是Kohana框架的新手。 我正在尝试在Kohana中使用ORM模块。 我的印象是我必须为我拥有的每个表创建一个模型。 然后只有我可以通过这些模块访问表。 这个对吗? 谁能解释在Kohana中使用ORM创建数据库访问模型的最佳实践?

在此先感谢Poomalairaj

是的,当我们谈论Kohana和ORM时,您非常需要我们称为实体或表示该表的模型。 这是指定域的最常见和推荐的方法。

请记住,Kohana中的模型概念与那里的一般概念不符。 您可以建立一个类似于业务逻辑实体的模型,该模型与数据库没有任何关系。

为了举例说明我的答案,如果您有一个简单的post应用程序,例如twitter或其他任何东西,您将具有以下内容:

class Model_User extends ORM {
    protected $_table_name = 'user';

    protected $_primary_key = 'id';

    protected $_has_many = array('posts' => array());
}

class Model_Post extends ORM {
    protected $_table_name = 'post';

    protected $_primary_key = 'id';

    protected $_belongs_to = array('user' => array());
}

Kohana的ORM也将了解您是否可以像这样创建模型:

class Model_User extends ORM {
    protected $_has_many = array('posts' => array());
}

class Model_Post extends ORM {
    protected $_belongs_to = array('user' => array());
}

由于它通常与配置约定保持一致。

在指定该域的情况下,您可以像这样访问某些用户的帖子:

$user->posts

和这样的帖子用户(作者):

$post->user

希望可以澄清您的想法!

您不必添加

protected $_primary_key = 'id';

添加的每个模型都是默认键,但是如果您的键不是'id',则必须添加行,并指定正确的键,例如“ userId”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM