簡體   English   中英

Lithium PHP框架-提交的模型屬性在保存之前消失

[英]Lithium PHP framework - submitted model property disappears before save

我正在開發一個使用Lithium PHP框架構建的項目,並且遇到一個奇怪的問題:

我有兩個用於用戶的控制器-一個用於網站的前端,一個用於管理面板。 它們都具有edit()方法,該方法調用Users模型的save方法。

問題是這個:

當我嘗試在管理面板中更改密碼時- $request->data包含confirmPassword POST字段---但---驗證規則永遠不會觸發。 而且,當我嘗試在前端注冊用戶時confirmPassword觸發器的驗證。

這些方法具有相同的代碼:

public function {add / edit} ($request, $user) {
    if (!$request->data) {
        return array(200, $user);
    }
    $success = $user->save();
    return array($success, $user);
}

驗證規則在模型中,並且使用自定義驗證,該驗證在config/bootstrap/validation.php使用以下代碼定義:

Validator::add('matchesPassword', function($value, $format, $options) { ...

最后-該網站是使用Lithium PHP框架(對我來說是新的) li3_resources ,並使用li3_resources ,所有控制器和模型都擴展了該Resource類。

那么...此POST字段在哪里消失? ...有什么線索嗎? ...

編輯:當我編寫public function {add / edit} ($request, $user) {我的意思是兩種方法:

public function add($request, $user) { ... 
public function edit($request, $user) { ... 

謝謝。

我找到了問題的原因:) ...

在以前的開發人員在模型中定義的驗證規則上,有以下子句:

'on' => 'create'

這導致驗證規則在編輯時不會觸發。

PS:我想傾倒在確認自身的規則(在這個類- https://github.com/UnionOfRAD/lithium/blob/master/util/Validator.php -在上線469 annonimous功能:

return static::_filter(__FUNCTION__, $params, function($self, $params) {

但傾銷從未發生??? ...可能在那里工作-這可以為我節省一些時間...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM