2017-09-17 51 views
0

我正在做Lumen(5.4)的第一步,我想將數據數組存儲到數據庫中。所以,我有:雄辯地創建空白條目

MySQL的rate_plans表

id PK AUTO_INCREMENT 
name VARCHAR(45) NOT_NULL 
slug VARCHAR(45) NOT_NULL 
price FLOAT(5,2) NOT_NULL 
created_at DATETIME NOT_NULL 
updated_at DATETIME NOT_NULL 

雄辯模式

use Illuminate\Database\Eloquent\Model as Model; 

class RatePlan extends Model { 

    protected $table = 'rate_plans'; 

    protected $dateFormat = 'Y-m-d H:i:s'; 

    protected $fillable = ['name', 'price']; 

    protected $guarded = []; 
} 

問題是,雄辯的創建與ID,created_at和的updated_at屬性正確的值記錄。但是,名稱,slu are是空的,價格是0.00。代碼是:

$data = ['name' => 'Test', price => 99.99]; 
$model = new \App\Models\RatePlan(); 
$model->fill($data); 
$model->slug = 'test'; 
$model->status = 'active'; 
$model->create(); 

任何想法?爲什麼Eloquent不會在保留空值時失敗?

回答

0

在laravel有創建相關模型(source

  • 創建兩個方法()
  • 保存()

你可以使用其中任意一個。要了解這兩種方法的區別請參考link

在你的代碼,要麼你可以改變它這樣

$data = ['name' => 'Test', price => 99.99]; 
$model = new \App\Models\RatePlan(); 
$model->fill($data); 
$model->slug = 'test'; 
$model->status = 'active'; 
$model->save(); 

或者你可以在$data陣列在slug傳遞價值,並繼續像這樣:

$data = [name => 'Test', slug => 'test',price => 99.99]; 

$model = new \App\Models\RatePlan(); 
$model->create($data);