Cakephp最佳实践
我有一个关于CakePHP最佳实践的问题 让我们设想以下情况: 在收据模型中,我有以下代码:Cakephp最佳实践,php,cakephp,cakephp-2.0,cakephp-model,Php,Cakephp,Cakephp 2.0,Cakephp Model,我有一个关于CakePHP最佳实践的问题 让我们设想以下情况: 在收据模型中,我有以下代码: public function beforeValidate() { $this->data[$this->name]["client_id"] = CakeSession::read("Auth.User.id"); $this->data[$this->name]["date"] = date('Y-m-d H:i:s');
public function beforeValidate()
{
$this->data[$this->name]["client_id"] = CakeSession::read("Auth.User.id");
$this->data[$this->name]["date"] = date('Y-m-d H:i:s');
$receipt = $this->data[$this->name]["receipt"];
$cod_filial = substr($receipt, 0, 3);
$qtdade_cupom = substr($receipt, 12, 2);
$tipo_pagamento = substr($receipt, 14, 1);
$this->data[$this->name]["cod"] = $cod_filial;
$this->data[$this->name]["quantity"] = $qtdade_cupom;
$this->data[$this->name]["payment_type"] = $tipo_pagamento;
$this->data[$this->name]["is_valid"] = null;
return true;
}
我必须对变量$qtdade_cupom,$cod_进行大量验证,比如检查有效数字
我在哪里做数学
我在模型内部创建了一个方法,如
public function checkDigits()
或
我创造了这样的行为
或
其他解决方案???答案很简单:取决于你需要什么 如果此数学由多个模型使用(不仅仅是特定于此模型),请使用行为 如果它仅用于此特定模型,请将其作为模型方法保存在内部 如果数学涉及许多其他工具和类,那么最好将此数学提取到/lib中一个可测试的lib中
但正如我所说的,这取决于它的确切需求和用途。CakePHP内置了模型验证 您还可以定义自定义验证方法 更多信息:
希望这有帮助。不要使用
$this->name
,它是$this->alias
。是的,你明白我的意思。非常感谢。如果我有我的代码,许多计算将与许多行使代码肮脏。这是我的问题,谢谢。我知道蛋糕的定制验证。在我的情况下,它不应该被占用,因为我必须检查一个数字验证并生成另一个数字并将其保存在其他表中。您可以通过自定义验证来实现这一点。