最近我做了兩個CakePHP web應用程序。第一次使用CakePHP格式的表需要它們,驗證似乎正常工作。對於第二個應用程序,我使用$useTable = false
,而是使用[model name] - > query()函數在控制器內執行SQL存儲過程以保存和更新數據,但遇到了模型驗證的幾個問題。
示例1: 我有一個名爲'WeekName'的字段,它在數據庫中有50個字符的限制。我的模型驗證設置如下所示,它與Cake文檔相匹配,但它很高興地讓字符串長度超過50個字符試圖保存。
'WeekName' => array(
'allowEmpty' => false,
'rule' => array('maxLength', '50'),
'message' => 'No more than 50 characters long.'
),`
實施例2: 我創建最近關於添加驗證問題,其中以包含在順序數據的控制器,用於處理數據所需的兩個字段中的一個。在嘗試了幾個建議之後,什麼也沒有起作用,它根本不檢查驗證,而是繼續處理控制器功能中的代碼。
所有這些問題都使我懷疑,如果模型驗證時將忽略$useTable = false
以及這是否是有意這樣做,如果有辦法,我可以在模型驗證開啓如果是這種情況。
如果有人對此問題有任何瞭解,以及可能導致該問題的原因或者是否有可能的解決方案,我們將不勝感激。
謝謝。
注:
使用CakePHP 2.7
你已經聲明你使用'query()'來更新你的表,但是沒有提到你如何試圖驗證你的數據。你需要顯示一些你的代碼。另外,爲什麼如果你的模型有關聯表,你告訴Cake沒有表並手動查詢數據庫? – drmonkeyninja
確保您陳述了您正在開發的CakePHP版本。 – drmonkeyninja
@drmonkeyninja示例1是我試圖在模型中的'$ validate'數組內進行驗證的示例。我的問題集中在'$ useTable = false'是否會導致模型驗證問題,而不是我的驗證不起作用。 – Daniel