讯睿cms如何禁止发布标题重复的内容
当开发者使用模块表单时,可以对一篇内容进行提交子内容,也就是下级内容,如何来判断本次模块表单提交的某个字段例如title是否在当前子内容中重复提交过呢?
需要二次开发模块表单的控制器,例如demo模块的test模块表单
那么,他的模块表单控制器路径是:dayrui/App/Demo/Controllers/Test.php
<?php namespace Phpcmf\Controllers; /** * 二次开发时可以修改本文件,不影响升级覆盖 */ class Test extends \Phpcmf\Home\Mform { public function index() { $this->_Home_List(); } public function show() { $this->_Home_Show(); } public function post() { if (IS_POST) { // 这里表示提交之前 $post = \Phpcmf\Service::L('input')->post('data'); $this->index = $this->_Module_Row($this->cid); if (\Phpcmf\Service::M()->table($this->init['table']) ->where('cid', $this->index['id']) ->where('title', $post['title'])->counts()) { $this->_json(0, 'title字段的值已经存在,不能重复提交'); } } $this->_Home_Post(); } }
方法二:我们以文章News模块为例,新建dayrui/App/Demo/Models/Content.php(推荐)
<?php namespace Phpcmf\Model\News; // 模块内容模型类 class Content extends \Phpcmf\Model\Content { // 内容发布之前 public function _content_post_before($id, $data, $old) { if ($this->db->table($this->mytable)->where('id<>', (int)$id)->where('title', $data[1]['title'])->countAllResults()) { return dr_return_data(0, '该标题已存在,请不要重复发布!'); } return $data; } }
此函数_content_post_before表示内容发布之前的操作,这里通常可以对数据进行验证并返回
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。