Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php ORM关系缓存_Php_Database_Orm_Kohana - Fatal编程技术网

Php ORM关系缓存

Php ORM关系缓存,php,database,orm,kohana,Php,Database,Orm,Kohana,没有无用的话,我需要一些建议 我正在基于HP 3.0.9框架构建另一个应用程序,我爱上了ORM(真正的生产力提升器!) 我得到了模型\用户模型: class Model_User extends ORM { protected $_table_name = 'users'; protected $_primary_key = 'id'; protected $_has_many = array( 'articles' => array(

没有无用的话,我需要一些建议

我正在基于HP 3.0.9框架构建另一个应用程序,我爱上了ORM(真正的生产力提升器!)

我得到了模型\用户模型:

class Model_User extends ORM
{
    protected $_table_name = 'users';
    protected $_primary_key = 'id';

    protected $_has_many = array(
        'articles' => array(
            'through' => 'users_articles',
        ),
    );

    protected $_ignored_columns = array('articles');
}
我遵循瘦控制器/胖模型的理念,因此在我的开发中,数据的正确位置是模型

什么是
$\u忽略列
?在一些地方,我需要返回
$user
对象,因此我将它与文章一起返回(当需要时),作为$user方法:
$user->articles->find_all()

到目前为止一切都很好,一切都很顺利。我不太确定我对
$\u ignored\u columns
的方法是否正确,如果不正确,请告诉我如何解决

但是,我在缓存方面遇到了一个问题。一般来说,除文章外,一切正常。它只是被缓存忽略(不保存在缓存文件中)。我还试图单独缓存它,但仍然没有运气


有什么建议吗?

被忽略的列只是模型中的一些“虚构”字段,ORM在保存()时不会尝试保存这些字段(如模型中的密码确认字段)

我真的不明白为什么要缓存文章,因为这没有多大意义,尽管您必须手动执行(例如添加额外的get_articles()方法,该方法将检查当前加载的文章是否有缓存并返回它),但您只会因为没有特殊原因而感到头痛(查询的速度到底有多慢,它是通过透视表按主键选择的?)


默认情况下,ORM不支持任何缓存(表列除外)。

我相信函数->cached()会传递到数据库模块,如果在Kohana::init()中将缓存设置为true,它会执行一些基本的缓存