Bom pessoal minha dúvida é a seguinte, como faço pra personalizar o search padrão de um model/admin.
model:
...
// Quero que este campo de pesquisa procure pelo nome e também pelo código da Situação(outra tabela do banco)
$criteria->compare('fkSituacao',$this->getSituacao($this->fkSituacao));
...
// Esta função é chamada acima e funciona quando informo o código(integer), mais não funciona com o nome(string)
public function getSituacao($sit)
{
if(is_null($sit)) return $sit;
if(is_numeric($sit)) return $sit;
// O que tentei fazer aqui foi pegar o nome da situação na tabela Situação
// [b]o nome está em outro model[/b]
$criteria=new CDbCriteria;
$criteria->select='codigo';
$criteria->compare('situacao',$sit);
// Aqui ele não pega o nome
$am=SituacaoAp::model()->find($criteria);
if(empty($am)) return 0;
return $am->attributes['codigo'];
}
public function getSituacao($sit)
{
if(is_null($sit)) return $sit;
if(is_numeric($sit)) return $sit;
$criteria=new CDbCriteria;
$criteria->select='codigo';
// Faltou apenas por o 'true' depois do $sit, já que é uma comparação entre 'strings'
// mudei disse $criteria->compare('situacao',$sit);
// para isso
$criteria->compare('situacao',$sit, true);
$am=SituacaoAp::model()->find($criteria);
if(empty($am)) return 0;
return $am->attributes['codigo'];
}