求助大神們,用戶在會(huì)員中心模塊下發(fā)布文章,需要有幾個(gè)字段是固定的,不能讓用戶在前端改,所以隱藏域這種不太合適,如何在不需要官方文件的情況下在控制器里處理。我知道有用鉤子和重寫(xiě)Content類(lèi)的方式。不過(guò)我這樣寫(xiě) 沒(méi)用
// 內(nèi)容發(fā)布之前
public function _content_post_before($id, $data, $old) {
$data['jbjd'] = '3';
return $data;
}順便還有個(gè)問(wèn)題求助,模塊表單有人留言后,如果通知作者,謝謝。
// 內(nèi)容發(fā)布之前 public function _content_post_before($id, $data, $old) { $data[填寫(xiě):1或者0,1是主表,0是附表]['jbjd'] = '3'; return $data; }打印下data就可以看格式了,一目了然,很容易看懂
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
主表字段:
副表字段
看你是什么表的字段
回復(fù)迅睿框架創(chuàng)始人 老大出馬,太nb了,如果用鉤子呢,我今晚看了一晚上鉤子沒(méi)稿明白。
\Phpcmf\Hooks::on('module_content_before', function($data) { $data[1]['jbjd'] = '3'; });這種就無(wú)法處理出來(lái),趁老大在線,多學(xué)下!
鉤子不適合這種賦值,鉤子只能強(qiáng)制中斷數(shù)據(jù),和執(zhí)行其他sql語(yǔ)句或者程序段,他不能返回?cái)?shù)據(jù)
回復(fù)@叢林灰太狼
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)迅??蚣軇?chuàng)始人 那老大比如我第二個(gè)問(wèn)題模塊表單有人留言后,如何通知此文章作者,用鉤子還是重寫(xiě)Content類(lèi),可以簡(jiǎn)單舉個(gè)列子嗎?程序我太菜了,在學(xué)習(xí)中。
推薦這個(gè),在提交成功后寫(xiě)通知代碼
回復(fù)@叢林灰太狼
參考文檔:《模塊表單提交后的回調(diào)開(kāi)發(fā)》
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)迅睿框架創(chuàng)始人 嗯,等下我繼續(xù)試試這個(gè),不過(guò)現(xiàn)在有點(diǎn)方啊,我希望審核后,繼續(xù)修改這個(gè)字段的值,重寫(xiě)Content類(lèi)用
// 內(nèi)容審核操作之后 public function _call_verify($data, $verify) { $data[1]['jbjd'] = '2'; return $data; }就不行了。jbjd還是開(kāi)始賦值的3,再后著臉求助下老大!
上面寫(xiě)的是內(nèi)容審核操作之后,已經(jīng)審核了,意味著數(shù)據(jù)已經(jīng)存儲(chǔ),就沒(méi)辦法賦值了,所以這里面是不能賦值寫(xiě)法的,
只有
可以賦值
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
// 內(nèi)容審核操作之后 public function _call_verify($data, $verify) { $verify = $this->table($this->mytable.'_verify')->get($verify['id']); $data = dr_string2array($verify['content']); $data[1]['jbjd'] = '2'; $this->table($this->mytable.'_verify')->update($verify['id'], ['content' => dr_array2string($data)]); }給分吧,不些
回復(fù)@黃老邪 我試了下 好像也不行 ?? jbjd的值還是3
// 內(nèi)容審核操作之后 public function _call_verify($data, $verify) { $verify = $this->table($this->mytable.'_verify')->get($verify['id']); $data = dr_string2array($verify['content']); $data['jbjd'] = '2'; $this->table($this->mytable.'_verify')->update($verify['id'], ['content' => dr_array2string($data)]); }回復(fù)迅睿框架創(chuàng)始人 老大,我試出來(lái),這種好像可以,不過(guò)不知道我代碼有問(wèn)題嗎?請(qǐng)老大看看!
public function _call_verify($data, $verify) { \Phpcmf\Service::M()->table_site('jubao')->update($data['id'], [ 'jbjd' => 6, ]); }public function _call_verify($data, $verify) { \Phpcmf\Service::M()->table_site('jubao')->update($verify['id'], [ 'jbjd' => 6, ]); }參數(shù)改一下,這里只能去更新數(shù)據(jù)庫(kù)值,不能賦值返回
回復(fù)@叢林灰太狼
開(kāi)源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問(wèn)題!
回復(fù)迅??蚣軇?chuàng)始人 老大,我看了下 您把
改為
我試了下 2個(gè)都可以把jbjd字段更新,但是他們有什么區(qū)別呢。又來(lái)學(xué)習(xí) ??