1
我有以下規則:定製Yii的統治PARAM
array('sites_conhecimento_regiao,facilidade_conhecimento_regiao', 'verificarOpcoesDoUsoDeInternetConhecimentoDaRegiao', 'campo'=>'{attribute}'),
它調用運行驗證功能:
public function verificarOpcoesDoUsoDeInternetConhecimentoDaRegiao($attribute, $params) {
switch ($params['campo']) {
case 'sites_conhecimento_regiao':
$mensagem = 'Informe os sites que utilizou para a sua pesquisa.';
break;
case 'facilidade_conhecimento_regiao':
$mensagem = 'Informe se teve facilidade ao obter as informações.';
break;
}
if (isset($this->conhecimento_regiao)) {
if (($this->$attribute === '') && ($this->conhecimento_regiao['conhecimento_regiao_internet'] === '1')) {
$this->addError($attribute, $mensagem);
}
}
}
我就是這麼做的重複使用狀況,核心這兩個領域的驗證。現在我想驗證Yii在哪個字段調用該函數。我嘗試使用$params
,但它返回字符串{attribute}
,而不是將其替換爲屬性的名稱,就像在規則中設置消息時一樣。
我該如何實現我的目標?
-
更新:雖然我已經解決了我的問題(見下文回答),如果有人還是要解決通過元數據通過規則的參數的問題,我離開開爲此目的的問題。
它呼籲$屬性功能。這可能是有用的http://www.yiiframework.com/wiki/168/create-your-own-validation-rule/ – ineersa