2014-03-12 93 views
0

我要保存使用laravel 4日的日期,我一直在尋找互聯網,但只有很好的解決方案,我發現用Laravel 4節省數據庫

$start_at = date("Y-m-d", strtotime($start_at)); 

,但我相信,這是一種Isaac Newton xd使用的古代代碼,如果我想檢索它,我需要再次使用。 在手冊中,我找到了「可變保護$日期=數組('My_date','Another_date');」或者使用「公共職能getDates()」,http://laravel.com/docs/eloquent#date-mutators我甚至改變文件Model.php,但我有這個錯誤的所有時間「發現意外的數據。發現意外的數據。數據丟失」

class Insurance extends Eloquent { 
    protected $table = 'insurance'; 
    protected $dates = array('start_at', 'end_at'); 
    public $timestamps = false; 
    protected $primaryKey = 'id_insurance'; 
    protected $fillable = array (
      'id_vehicle', 
      'start_at', 
      'end_at' 
    ); 

    public function getDates() 
    { 
     return array('start_at', 'end_at'); 
    } 
} 
+0

PHP有一個很棒的[DateTime](http://php.net/datetime)類。只需將'$ start_at'放入構造函數(如果它被strtotime正確解析)並將其格式化爲以後的樣子。 – Mike

+1

你想保存一個特定的日期還是你想要約會?如果將字段添加到getDates Eloquent將DATETIME/TIMESTAMP字段創建爲Carbon對象(它是DateTime類的擴展),那麼獲取日期即可使用。 – Bram

+1

我想將它保存在數據庫中,我想要的是設置一個列日期 – user3369524

回答

1

我會建議使用PHP庫的Carbon庫。

將您的列類型設置爲數據庫中的日期。 (mySql允許)。

如果在窗體中有輸入從而使該日期的不同部分,如年,月,日,您可以創建輸入要插入的

Carbon::createFromDate(  
$dateOfBirth['year'],  
$dateOfBirth['month'], 
$dateOfBirth['date'])->toDateString(); 

這可以被插入到你的雄辯模型。