nullを許可されていない空の文字列をmysqlvarcharフィールドに保存するにはどうすればよいですか? データベースフィールドを変更できず、ハードコードを記述したくありません。 プロジェクトの多くのアクションでモデルのこのフィールドが必要になるため、スキップできません。 例えば:
$model->field = ''; // empty string is a value.
$model->save(); // error
$model->field = new \Phalcon\Db\RawValue('""');
$model->save();
ここを参照してください
@nikolasha以前の同じ投稿にリンクしていただきありがとうございます。
この解決策について-それは本当に面白いです。 誰の病気の脳がこのアイデアを思いついたのですか? stackoverflowからの質問を思い出しました。「2つの数値の合計を計算する方がよいのはなぜですか?」 そして最も人気のある(そしてそれは正しいとマークされた)答えは「クエリプラグインを使用する、[各番号と演算子にオブジェクトを作成する必要があるいくつかのプラグインリスト]。オブジェクトなしで合計を計算するのは初心者と馬鹿だけです」でした。 Ok。 空の文字列値ごとにオブジェクトを作成しましょう。 素晴らしい解決策。
ファルコンが以前の投稿で述べたように、検証を再実装するいくつかの方法を試します。 ありがとう。
しかし、私の観点からすると、このロジックは_非常に_奇妙です。 @phalconへのコメント-前のトピック(現在にリンクされている)が閉じられているので、ここに残しておきます。 モデルで空のデータを取得し、それを保存する場合、それは問題ありません。 バリデーターを禁止するには、バリデーターを実装(または指定)する必要があります。 現在、ロジックは使用できず、理解するのが非常に困難です。
PSおそらく私の最後のメッセージは礼儀正しくありません。 どうぞ、気楽にやってください。お気に入りのフレームワークがますます奇妙なソリューションを実装する方法を見るのは辛いことです。
#440で議論を続ける
最も参考になるコメント
ここを参照してください