Cphalcon: Não é possível salvar a string vazia (não nula) - phalcon diz que o valor é necessário

Criado em 17 mai. 2013  ·  3Comentários  ·  Fonte: phalcon/cphalcon

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

Comentários muito úteis

$model->field = new \Phalcon\Db\RawValue('""');
$model->save();

veja aqui

Todos 3 comentários

$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

Esta página foi útil?
0 / 5 - 0 avaliações