cakephp 3是否存储数据库实例的缓存?
我试图在CakePHP3中获取数据库表的实例。 简单代码:cakephp 3是否存储数据库实例的缓存?,cakephp,Cakephp,我试图在CakePHP3中获取数据库表的实例。 简单代码: $r = TableRegistry::get('envelope') ->find() ->where(['enID'=>$id]) ->first(); 它起作用了。但当我在“信封”表中添加新列时,新列不会出现在$r中。 看起来像个缓存?或者我做错了什么 我不知道为什么,但只有当我写下所有列的名称时,它才起作用,比如: $r = TableRegistry::get('envelop
$r = TableRegistry::get('envelope')
->find()
->where(['enID'=>$id])
->first();
它起作用了。但当我在“信封”表中添加新列时,新列不会出现在$r中。
看起来像个缓存?或者我做错了什么
我不知道为什么,但只有当我写下所有列的名称时,它才起作用,比如:
$r = TableRegistry::get('envelope')
->find()
->select(array('enID','title_web','description'))
->where(['enID'=>$id])
->first();
是的,模型模式缓存在cakephp中,如烹饪书中所述 您可以将缓存持续时间设置为所需的任何值,因此,如果您添加列广告,则等待在缓存引擎中设置的时间,您应该会看到它添加到查询中 您可以在config/app.php中找到缓存引擎定义 如果在过期时间之后,表架构未更新,则可能存在其他问题 如果将调试设置为true,则缓存持续时间通常设置为较短的时间,即2分钟
此外,如果您按照说明启用debugKit,当您可以看到所有活动的缓存引擎时,它将显示一个缓存面板,您可以随时重置“蛋糕”模型缓存我不知道为什么,但它仅在我写入所有列名称时才起作用,如:$r=TableRegistry::get'envelope'->find->selectarray'enID'、'title\u web','description'->其中['enID'=>$id]->第一个;你也可以很容易地从命令行中清除缓存:$bin/cake cache clear\u cake\u model\u。谢谢你真的帮助了我!刚刚切换到调试模式,一切正常!