確實存在一個「唯一」驗證規則(如果有,如何實現?)或必須通過回調實現? 謝謝。Kohana 3.1 ORM:如何實現「唯一」驗證規則?
0
A
回答
3
) 據我知道有沒有普遍的「唯一」(或「is_unique」)驗證類的規則。 這可能是因爲這種檢查不規律。然而,如果你想做得很好,你可以爲你在你的應用程序中使用的所有模型創建一個「基礎模型」(使它們基於擴展爲)。 然後,唯一可以確認或多或少是這樣的:
public function is_unique($id)
{
return ! (bool) DB::select(array(DB::expr('COUNT(id)'), 'total'))
->from($this->_table_name)
->where('id', '=', $id)
->execute()
->get('total');
}
在您需要添加此規則,您的驗證規則:
array('id' => array(array(array($this, 'is_unique')));
我存儲在方法rules()
內部模型的規則,按照建議。 所以這個可能是一個活生生的例子:
class Model_Base_Model extends ORM
{
public function rules()
{
return array(
'id' => array(
array(array($this, 'is_unique')),
);
}
public function is_unique($id)
{
return ! (bool) DB::select(array(DB::expr('COUNT(id)'), 'total'))
->from($this->_table_name)
->where('id', '=', $id)
->execute()
->get('total');
}
}
現在延長Model_Base_Model每一個模型將現在能夠檢查它的獨特性,同時創造。 希望這有助於! :)
0
3
在Kohana 3.2 ORM有一個獨特的()方法做檢查,我不確定它是否存在於3.1中,但它應該。
有了,你可以只添加一個規則,以你的模型是這樣的:
array(array($this, 'unique'), array('some_field', ':value')),
,它會檢查是否some_field是唯一
+0
是的,這可以像KO 3.2中的魅力一樣在箱子內運作。無論如何,這個問題涉及到v3.1。謝謝! – 2012-03-12 18:36:14
相關問題
- 1. 如何應用Kohana 3.1中的「匹配」驗證規則?
- 2. Kohana驗證'匹配'規則
- 3. Kohana 3.1驗證條件規則可能嗎?
- 4. Kohana的驗證規則(該規則或該規則)
- 5. Kohana 3.1驗證問題
- 6. Laravel 5.1嘲諷'唯一'驗證規則
- 7. MDD唯一性驗證規則
- 8. kohana驗證規則與語言文件
- 9. Kohana驗證完整規則列表
- 10. 如何在Rails 3.1中使用驗證來強制實現複合唯一性?
- 11. Laravel 4 - 如何使用軟刪除的唯一驗證規則/唯一列?
- 12. 如何在wpf/XAML中實現條件驗證規則
- 13. 驗證唯一實體
- 14. Rails - 如何實現唯一性的客戶端驗證?
- 15. 如何防止Kohana的3.1的ORM使用身份驗證?
- 16. 如何驗證電子郵件使用Kohana 3.1 ORM
- 17. 在kohana 3.1中的文件上傳驗證3.1不起作用
- 18. Externalise驗證規則JSF
- 19. 複合唯一索引(非主要)的驗證規則
- 20. Laravel 5.1:唯一日期時間的驗證規則
- 21. Kendo電子表格唯一值驗證規則
- 22. Kohana自定義驗證規則錯誤ReflectionException
- 23. Kohana驗證:範圍規則的正確語法
- 24. 添加個人驗證規則和功能,kohana 3.0.8
- 25. 規則驗證color_id
- 26. Jquery - 驗證 - 規則
- 27. CodeIgniter驗證規則
- 28. Laravel驗證規則
- 29. Combobox驗證規則
- 30. yii驗證規則
再次感謝您!我實施了非常類似的解決方案。 – 2011-06-02 19:23:11