確實存在一個「唯一」驗證規則(如果有,如何實現?)或必須通過回調實現? 謝謝。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的驗證規則(該規則或該規則)
- 4. Kohana 3.1驗證問題
- 5. MDD唯一性驗證規則
- 6. Kohana驗證完整規則列表
- 7. 如何在Rails 3.1中使用驗證來強制實現複合唯一性?
- 8. 如何在wpf/XAML中實現條件驗證規則
- 9. 如何防止Kohana的3.1的ORM使用身份驗證?
- 10. Externalise驗證規則JSF
- 11. 複合唯一索引(非主要)的驗證規則
- 12. Kendo電子表格唯一值驗證規則
- 13. Laravel 5.1:唯一日期時間的驗證規則
- 14. 添加個人驗證規則和功能,kohana 3.0.8
- 15. CodeIgniter驗證規則
- 16. Jquery - 驗證 - 規則
- 17. 規則驗證color_id
- 18. 如何在Laravel 4中添加組合的唯一字段驗證器規則
- 19. Laravel 5.1。如何在「唯一」驗證規則中添加多個例外情況?
- 20. 驗證規則無法正確更新2驗證規則
- 21. OOP表單驗證器實現長度規則
- 22. 如何從FluentValidator獲取驗證規則
- 23. 如何添加驗證規則到jquery.validation
- 24. 實體對象驗證和業務規則驗證
- 25. 如何實現僅在運行時期間已知的驗證規則
- 26. 我們如何實現與Laravel驗證規則相反的「exists:table,column'?
- 27. jquery驗證:自定義驗證規則
- 28. 如何驗證客戶端驗證中的雙變量規則?
- 29. 如何使用jQuery驗證laravel驗證規則
- 30. 如何使用jQuery驗證具有多個驗證規則集
再次感謝您!我實施了非常類似的解決方案。 – 2011-06-02 19:23:11