2012-08-05 51 views
0

我想单个页面(如:domain.sg/contact)是可编辑的,但我认为创建一个新的数据库表,一个模型,一个控制器和视图不是这个原语的最佳实践问题。你有什么建议?修改单页cakephp

回答

0

如果您希望在不使用数据库的情况下编辑文件,则需要在页面或其他位置使用文件系统函数以及编辑表单。

在页面控制器为您编辑表单:

public function edit_contact() 
{ 
//retrieve file's contents and output to view 
$file = fopen('/path/to/contact.ctp', w); 
$file_contents = file_get_contents($file); 
$this->set('contents', $file_contents); 
if($this->request->is('post')) 
{ 
    fwrite($file, $this->request->data['contents']); 
} 
fclose($file); 
} 

查看文件:

//edit_contact.ctp 
echo $this->Form->create('Edit Contact); 
echo $this->Form->input('Content', array('type' => 'textarea', 'value' => $contents)); 
echo $this->Form->end('Update File'); 

您然后创建一个你想成为可编辑contact.ctp。

警告:此表单不验证,并允许用户输入他们想要的任何内容,包括可能用于对您或其他访问者的恶意代码。

+0

我正要这样做,但我不知道在哪里存储内容。 – JohannSan 2012-08-05 12:05:37

+0

在“Cake/app/View/Pages”文件夹中创建一个视图 – Alex 2012-08-05 12:34:31

+0

确定,但是如何编辑它。我希望它是由用户编辑 – JohannSan 2012-08-05 13:15:59