Active Record の属性は、モデル クラスとどのように異なるのでしょうか? dob という名前のデータベースからの列がある User モデルがあります。ユーザーから全体として dob を受け入れるつもりはないため、ルール関数には dob を含むものは何もありませんが、代わりに「日付、月、年」が使用されます。
array('date, month, year', 'validDate'),
そして私はこれをやっています
public function afterValidate()
{
parent::afterValidate();
$this->date_of_birth = date("Y-m-d", strtotime($this->year."".$this->month."".$this->date));
}
データベースに記録された値を保持します。それが Active Reocrd のものなのかモデルなのかよくわかりませんが、日付はユーザーが入力したものではなく 1970-01-01 Unix のデフォルトで保存されているので、何か間違ったことをしているに違いありません。PS私はルールで安全な日付の月と年を持っています。validDate のコード
public function validDate($attributes, $params)
{
if($this->scenario == 'registration-general')
{
if($this->month == 0)
$this->addError('month','Month cannot be blank');
elseif(0 > $this->month || $this->month > 12)
$this->addError('month','Enter a valid month');
}
}