2015-11-16 30 views
1

我有一個模型,包含3個字段,ID,Language,Filename。如果存在與FilenameLanguage相同的現有記錄,如何防止保存新記錄。例如Cakephp 2.x:isUnique驗證兩個字段合併

1. ID: 0001 Language: EN  Filename:Test.pdf 

如果我嘗試添加另一條記錄與Language EN和Filename向檢驗.pdf顯示錯誤。我想在模型中做到這一點。請記住,我是CakePHP的新手。

+0

可能的解決方案:http://stackoverflow.com/questions/2461267/cakephp-isunique-for-2-fields – skywalker

回答

1

規則添加到了$ validate數組中的模型:

public $validate = array(
    'Filename' => array(
     'rule' => array('isUnique', array('Language', 'Filename'), false), 
     'message' => 'The File already exists in the specified Language ', 
     'required' => 'create' 
    ) 
); 

CakePHP 2.x documentation

+0

此規則在添加時正常工作,但由於某種原因,每當我嘗試編輯現有記錄時保存失敗。如果我刪除上述規則,那麼一切都很好。 – user1292656

+0

我已經更新了答案,以便只在添加新條目時強制執行規則。 –