0

重複の可能性:
CakePHP 2.0 - フォーム ヘルパーで MySQL ENUM フィールドを使用して Select Input を作成する

フォームにチェックボックスがあります。そのチェックボックスには、データベースに列挙型の列があります。そのチェックボックスがオンになっている場合は、その列に 1 を保存する必要があります。それ以外の場合は 0 です。

CakePHP の保存機能を使用して、すべてのフォーム値を保存しています。そのチェックボックスをオンにすると、列は 1 で更新されましたが、チェックを外してから送信ボタンを押すと、空の値で更新されます。

CakePHPでチェックボックスを使用して列挙型の値を保存するにはどうすればよいですか?

4

2 に答える 2

0

何も定義しない場合、Enum は列のデフォルト値として Null を取ります。テーブル定義を更新し、デフォルトとして「0」を設定します。それはあなたの問題を解決します。

于 2012-12-21T09:03:33.507 に答える
0

または、列の型を tinyint (0/1) に変更します (たとえば MySQL の場合):

ALTER TABLE users CHANGE COLUMN active active tinyint not null default 0;

または、値が合格 (またはチェック済み) かどうかを検証します。次に例を示します。

if($this->request->data['User']['active'] == null) {
    $this->request->data['User']['active'] = 0;
}
于 2012-12-21T11:01:13.973 に答える