ルールを定義するとき、フィールド名はデータベースの列名と一致する必要がありますか?
フィールド名と列名が一致しない場合、ルールが表示され、データベースに何も保存されないという問題があります。
機能するもの:
データベース
user_id | username
分野
<?php echo Form::input('username', $username, array('id' => 'username')); ?><?php echo Arr::get($errors, 'username');?>
モデル
class Model_User extends ORM {
protected $_primary_key = 'user_id';
public function rules()
{
return array(
'username' => array(
array('not_empty'),
),
);
}
}
メッセージ
return array(
'username' => array(
'not_empty' => 'You must provide a username.',
),
);
機能しないもの:
データベース
user_id | username
分野
<?php echo Form::input('membername', $username, array('id' => 'username')); ?><?php echo Arr::get($errors, 'membername');?>
モデル
class Model_User extends ORM {
protected $_primary_key = 'user_id';
public function rules()
{
return array(
'membername' => array(
array('not_empty'),
),
);
}
}
メッセージ
return array(
'membername' => array(
'not_empty' => 'You must provide a username.',
),
);
フィールド名をユーザー名以外に変更すると、ルール機能が正しく動作しないようです。
ルールを適用しない場合、ユーザー名を別のものに変更しても、データをデータベースに保存する際に問題は発生しません。