没有闲言,我需要一些建议。
我正在构建基于KohanaPHP 3.0.9框架的另一个应用程序,感觉爱上了ORM(真正的生产力助推器!)。
我有Model_User模型:
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');
}
我已经采用了瘦控制器/胖模型理念,因此数据的正确位置是我开发中的模型。
什么是$_ignored_columns
?在少数地方我需要返回$user
对象,所以我将文章(需要时)作为$ user方法返回:$user->articles->find_all()
;
到目前为止,一切都很完美。我不确定我对$_ignored_columns
的态度是否正确,如果没有,请告诉我如何解决它。
但是,我遇到了缓存问题。一般来说,一切都正常工作期待文章。它只会被缓存忽略(不保存在缓存文件中)。我也试图单独缓存它 - 仍然没有运气。
有什么建议吗?
答案 0 :(得分:1)
忽略的列只是模型中的一些“虚构”字段,ORM不会尝试保存在save()上(如Model_Auth_User中的password_confirm字段)
我真的不明白你为什么要缓存文章,因为它没有多大意义,虽然你必须手动完成(比如添加额外的get_articles()方法,它会检查当前是否有缓存文章并返回它),但是你会因为没有特别的原因让自己头痛(查询真的有多慢,它是通过数据透视表的主键选择?)。
默认情况下,ORM不支持任何缓存(表列除外)。