2

我是蛋糕 PHP 的新手。我正在研究 cakePHP 上的现有网站。由于客户的一些要求,我不得不在数据库中的一个表中添加一个新列。我可以输入除我最近创建的字段之外的所有字段。我想问题是因为在脚手架期间不存在。但我不知道如何解决这个问题。

我可以在从数据库中获取时访问该字段,只需添加array('fields'=>'*') in即可$this->Model_name->find('first',array('fields'=>'*'))

$this->request->data['ModelName']['field_name'] = 'value'; 在使用保存功能之前,我尝试使用此方法进行新插入。但问题是除了我添加的这个新字段之外,所有字段都被插入。

我希望事情很清楚。

4

2 回答 2

2

请阅读文档 - ModelName 是 CamelCased:

$this->request->data['ModelName']['field_name'] = 'value';

如果仅未添加此新字段,则很可能您没有清除(永久/模型)缓存。您需要这样做才能让 cake 识别新添加的 db 字段。

于 2013-01-21T11:30:54.417 回答
2

在你的情况下,提醒我我的 2 个错误使我无法保存我的新领域。

1 确保您的数据库表中有新字段。
2 在我的生产系统中,我将调试设置为 0,因此模型和持久缓存不会更新。

要清除模型和持久缓存,您可以在命令行中设置Configure::write('debug', 2);app/Config/Core.php手动删除缓存。

rm -f app/tmp/cache/models/cake_model_*  
rm -f app/tmp/cache/persistent/cake_core_*
于 2013-01-21T12:36:13.010 回答