Meu primeiro post, comecei agora a testar o yii (ontem), e não estou conseguindo entender/fazer uma verificação e redirecionar para uma msg de erro, no caso pra render partial…
um exemplo simples, estados / cidades
pra cadastrar cidades a aplicação precisa de um estado (FK)
crio no model Estados o que busca os dados pro dropdown, até ai tudo ok, eu queria fazer que ao tentar rodar o create / update (talvez desnecessário) de cidades, checasse se existe algum registro na tabela estados, caso não tenha, eu direciono a um partial render com a mensagem de erro e o link para o crud dependente (estado) e vazio até então.
no model eu criei esse metodo que "cria" o dropdown, mas os filters no controller cidades não faço a mínima idéia, já li o manual e confesso que não compreendi muito bem…
Nesse caso, $estados é um vetor com todos os estados no banco de dados.
Como os values do DropDown são ids que JÁ EXISTEM no banco de dados, não há necessidade de filtro, ou qualquer outra verificação para verificar se já existe esse estado no banco.
Note que esse trecho de código, deve ficar na view. Nesse caso, uma suposta página de cadastro de usuários, onde $usuario é o modelo e id_estado é chave estrangeira nesse modelo, que armazena o id do estado selecionado.
Davi obrigado pela resposta, muito legal o caso de popular o dropdown, mas a questão do filtro seria, caso não existirem dados na tabela, tabela estados vazia por exemplo, usei estados por ser mais intuitivo, mas por exemplo poderia ser laboratórios / medicamentos, é pra faze inicial de uma aplicação. caso não exista nenhum dado na tabela e sendo uma FK e dependente precisa ter algum dado no dropdown
mas eu to é confundindo também… posso criar um view warning e verificar direto no action do controller e mandar renderizar algo como:
" Para cadastrar um medicamento precisa-se ter laboratórios cadastrados (e o link pro create de laboratório no caso) "
Mas valeu, já me ajudou a entender mais algumas coisas… essa possibilidade de passar o "prompt" diretamente não tinha visto …
Outra opção seria um formulário mais elaborado, onde, caso não exista o item (por exemplo laboratório), o usuário possa cadastra-lo no mesmo formulário que o medicamento. Muito mais legal, principalmente no ponto de vista da usabilidade.
Isso é bastante simples de se fazer. Abaixo um tutorial do cookbook, que mostra como pode ser feito: