2016-01-20 52 views
0

嗨,我有功能,我需要從下拉列表中獲取值(在3個dropdownlists我有年,月,日如Facebook註冊)。我想從這3個值中設置日期。設置日期函數與Yii2中的模型值

public function setDate() 
{ 
    $month=$this->month+1; 
    $date = date_create(); 
    date_date_set($date, $this->year,$month, $this->day); 
    return date_format($date, 'Y-m-d'); 

} 

然後在我的控制器中我想保存我的日期,但它不起作用。

if ($model->load(Yii::$app->request->post()) && $model->validate()) { 
     $model->setDate(); 
     $model->save(); 

哪種方法的日期可以用於這個操作,我可以給我的參數值?

我試試這個方法太

public function setDate() 
{ 
    $month=$this->month+1; 
    $date = new DateTime(); 
    $date ->setDate($this->year,$month, $this->day); 
    return $date->format('Y-m-d'); 

} 

,但我有

Argument 1 passed to Faker\Provider\Base::__construct() must be an instance of Faker\Generator, none given, called in E:\htdocs\mesport\frontend\modules\settings\models\Profile.php on line 119 and defined 
+0

你會得到什麼錯誤? –

+0

我沒有得到任何錯誤,只是它沒有在數據庫中保存我的日期 – Informer

+0

什麼是你的日期列數據庫名稱 –

回答

0

在你自定義的方法你其實並不改變模型的屬性值。假設該方法位於內部的模型,通過更換回線:

$this->yourDateAttribute = ...; 

另外,還要確保這個屬性是在當前情況下是安全的。