Como posso salvar apenas uma string vazia no campo mysql varchar, que não pode ser nulo? não consigo alterar os campos do banco de dados e não quero escrever hardcode. Não posso ignorá-lo, pois muitas ações no meu projeto exigem esse campo em um modelo. Por exemplo:
$model->field = ''; // empty string is a value.
$model->save(); // error
$model->field = new \Phalcon\Db\RawValue('""');
$model->save();
veja aqui
@nikolasha Muito obrigado pelo link para o mesmo post anterior.
Sobre esta solução - é muito engraçado. De quem é o cérebro doente que teve essa ideia? Lembrei-me da pergunta do stackoverflow "Como é melhor calcular a soma de dois números?" e a resposta mais popular (e foi marcada como correta) foi "Use plugins de consulta, [lista de alguns plugins, onde você precisa criar objeto para cada número e operador]. Somente noobies e idiotas calculam soma sem objetos". OK. Vamos criar objetos para cada valor de string vazio. Bela solução.
Vou tentar algumas maneiras de reimplementar a validação, como phalcon disse no post anterior. Obrigada.
Mas - do meu ponto de vista - essa lógica é _MUITO_ estranha. Um comentário para @phalcon - vou deixar aqui, pois o tópico anterior (vinculado ao atual) está fechado. Se você obtiver dados vazios nos modelos e salvá-los - está tudo bem. Você precisa implementar (ou especificar) validadores, para proibi-lo. Atualmente a lógica é inutilizável e muito difícil de entender.
PS Talvez minha última mensagem não seja educada. Por favor, tenha calma, é doloroso ver como seu framework favorito implementa soluções cada vez mais estranhas.
Mantendo a discussão em #440
Comentários muito úteis
veja aqui