1
定義規則時,字段名稱是否必須與數據庫中的列名稱匹配?Kohana 3.2規則失敗
我遇到問題,如果字段名稱和列名稱不匹配,則會顯示規則並且沒有任何內容保存到數據庫。
什麼工作:
數據庫
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.',
),
);
看來如果我將字段名稱更改爲用戶名以外的其他名稱,規則功能無法正常工作。
如果我不應用任何規則,將用戶名更改爲其他內容不會導致將數據保存到數據庫時出現任何問題。
我希望事實並非如此。我的代碼沒有規則。我的字段名稱與列名稱不同,因爲所有信息來自同一個表,因此不能將其稱爲相同的字段名稱。這是一個選項表,所以一行是網站名稱,下一行是網站描述。字段名稱將是sitename和sitedescription,而不是信息來自的列的名稱。 – markerpower
似乎外部驗證是我需要做的。 – markerpower