Mascara na pesquisa

Olá pessoal!

Meu problema é quando digito texto num campo cuja coluna é do tipo numérico ou data usando filtro do CGridView. Aí aparece o erro 500.

Existe uma solução?

Queria tratar este erro com uma mensagem simples ou máscaras para validar o episódio.

Obrigado!

CGridView: 2546

CGridView.png

Erro 500: 2547

erro-500.png

Vai lá no model e faz um cast no parametro, converte para inteiro

$this->campo = intval($this->campo);

Isso na função search.

E ve se isso resolve.

Railton

Assim?: $criteria->compare(’“IdPessoa”’,$this->IdPessoa = intval($this->IdPessoa));

Não deu erro, mas também não apresentou os registros. A proposito, eu esqueci de mencionar, estou usando o PostgreSql. Será que tem algo relacionado?




public function search()

	{

		// Warning: Please modify the following code to remove attributes that

		// should not be searched.


		$criteria=new CDbCriteria;


		$criteria->compare('"Id"',$this->Id);

		$criteria->compare('"IdPessoa"',$this->IdPessoa = intval($this->IdPessoa));

		$criteria->compare('"Usuario"',$this->Usuario,true);

		$criteria->compare('"Senha"',$this->Senha,true);

		$criteria->compare('"IdGrupo"',$this->IdGrupo);

		$criteria->compare('"Status"',$this->Status,true);

		$criteria->compare('"UltimoAcesso"',$this->UltimoAcesso);

		$criteria->compare('"DataValidade"',$this->DataValidade);

		$criteria->compare('"DataCadastro"',$this->DataCadastro);


		return new CActiveDataProvider($this, array(

			'criteria'=>$criteria,

		));

	}



Railton, muito obrigado, a ajuda que você me deu pelo msn resolveu o problema. Segue abaixo:




$this->IdPessoa = $this->IdPessoa!='' ? intval($this->IdPessoa) : $this->IdPessoa;


$criteria->compare('IdPessoa',$this->IdPessoa);