質問編集履歴
2
Modelのソースを追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -8,8 +8,6 @@
|
|
8
8
|
|
9
9
|
Validationのチェックが通ったらSaveメソッドも成功するようにする様に作りたいです。''をNULLに変える処理をどこに書くのが適当でしょうか?
|
10
10
|
|
11
|
-
|
12
|
-
|
13
11
|
■Controller側
|
14
12
|
```PHP
|
15
13
|
public function action_create(){
|
@@ -136,4 +134,54 @@
|
|
136
134
|
</tr>
|
137
135
|
</table>
|
138
136
|
<?php echo Form::close();?>
|
137
|
+
```
|
138
|
+
|
139
|
+
```PHP
|
140
|
+
class Model_Item extends \Orm\Model
|
141
|
+
{
|
142
|
+
protected static $_properties = array(
|
143
|
+
'id',
|
144
|
+
'item_cd' => array(
|
145
|
+
'data_type' => 'varchar',
|
146
|
+
'label' => '商品コード',
|
147
|
+
'validation' => array('required','max_length'=>array(100)),
|
148
|
+
'form' => array('type' => 'text'),
|
149
|
+
),
|
150
|
+
'item_name' => array(
|
151
|
+
'data_type' => 'varchar',
|
152
|
+
'label' => '商品名',
|
153
|
+
'validation' => array('required','max_length'=>array(300)),
|
154
|
+
'form' => array('type' => 'text'),
|
155
|
+
),
|
156
|
+
'catalog_price' => array(
|
157
|
+
'data_type' => 'int',
|
158
|
+
'label' => '定価',
|
159
|
+
'validation' => array('valid_string'=>array(array('numeric')),'max_length'=>array(8),'intnull'),
|
160
|
+
'form' => array('type' => 'text'),
|
161
|
+
),
|
162
|
+
'op_flag' => array(
|
163
|
+
'data_type' => 'int',
|
164
|
+
'label' => 'オープン価格',
|
165
|
+
'form' => array('type' => 'checkbox', 'options' => array(1 => 'aaa'), 'value' => 0 ),
|
166
|
+
),
|
167
|
+
|
168
|
+
'stock_type' => array(
|
169
|
+
'data_type' => 'int',
|
170
|
+
'label' => '在庫タイプ',
|
171
|
+
'validation' => array('required'),
|
172
|
+
'form' => array('type' => 'radio', 'options' => array(0 => '設定なし', 1 => '単品在庫' , 2 =>'バリエーション在庫' )),
|
173
|
+
),
|
174
|
+
);
|
175
|
+
protected static $_observers = array(
|
176
|
+
'Orm\Observer_CreatedAt' => array(
|
177
|
+
'events' => array('before_insert'),
|
178
|
+
'mysql_timestamp' => false,
|
179
|
+
),
|
180
|
+
'Orm\Observer_UpdatedAt' => array(
|
181
|
+
'events' => array('before_update'),
|
182
|
+
'mysql_timestamp' => false,
|
183
|
+
),
|
184
|
+
);
|
185
|
+
protected static $_table_name = 'item';
|
186
|
+
}
|
139
187
|
```
|
1
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
|
1
|
+
フォームからの入力で未入力の場合はnullでデータベースに登録したい
|
body
CHANGED
@@ -5,13 +5,10 @@
|
|
5
5
|
困っているのは「定価」という項目のデータベースへの登録で、この項目はテーブル定義では数値型でNULLが許可されています。(MySQL)
|
6
6
|
|
7
7
|
何も入力がなかった場合はNULLとしてデータベースに登録したいのですが、このソースでModelのSaveメソッドを実行すると''で登録しようとしてSQLエラーになってしまいます。(ORMモデルです)
|
8
|
-
※Saveメソッドを成功させるには$item->catalog_priceにnullを入れないとダメでした
|
9
8
|
|
10
|
-
Validationのチェックが通ったら
|
9
|
+
Validationのチェックが通ったらSaveメソッドも成功するようにする様に作りたいです。''をNULLに変える処理をどこに書くのが適当でしょうか?
|
11
10
|
|
12
11
|
|
13
|
-
本当はViewでやっているRadioボタンの選択の変な処理も質問したいところですが、一番困っているところから質問させていただきました。
|
14
|
-
よろしくお願いします。
|
15
12
|
|
16
13
|
■Controller側
|
17
14
|
```PHP
|