繼CI user_guide工作,我已經創建了一個名爲「form_validation.php」配置文件,在它下面的組:笨自動加載表單驗證規則設置爲不帶參數
$config = array(
'user/create' => array(
array(
'field' => 'id',
'label' => '',
'rules' => ''
),
array(
'field' => 'first_name',
'label' => 'lang:First name',
'rules' => 'required|max_length[30]'
),...
),
'user/update' => array(
array(
'field' => 'id',
'label' => '',
'rules' => ''
),
array(
'field' => 'first_name',
'label' => 'lang:First name',
'rules' => 'required|max_length[30]'
),...
)
);
在我的「用戶」控制器,當我調用'create'方法時,因此使用URL http://localhost/my_ci_application/user/create
,語句$this->form_validation->run()
自動運行我的配置文件中定義的第一組規則。這是我在用戶指南中讀到的預期行爲。
但是,當我運行以下URL http://localhost/my_ci_application/user/update/1
來更新ID爲1的用戶時,它不會自動加載「用戶/更新」規則集。看起來好像是因爲這個參數,CI希望找到一個'user/update/1'規則集,這當然是我無法創建的,因爲我的用戶ID在調用這個方法時會一直在變化。
我理解這個權利嗎?如果是的話,那麼這是一個遺憾,因爲我認爲標準的CI URL是這樣形成的:controller/method/parameters ...所以我希望表單驗證類只考慮前兩個URI段?
僅供參考,如果我在user.update方法下面寫的,我驗證規則做工精細:
$this->form_validation->run('user/update')
所以我的問題是真的,如果我正確或不理解規則的自動加載,如果有是我們可以做什麼來自動加載這些規則,即使使用具有某些參數的方法。
非常感謝你提前。
嗯,是真的,我知道我需要的那一刻,把「用戶/更新」通過運行調用驗證規則我自己()方法。我的問題更多的是要知道是否有某種配置需要在某個地方完成,以便CI不會採用所有的URI段但只有前兩個AUTOMATICALLY,以便我可以繼續使用'$ this-> form_validation-> run( )'沒有傳遞任何東西。 但無論如何,謝謝你。 –