2016-12-14 73 views
1

型號

class Flight extends Model 
{ 
    protected $fillable = ['name']; 

    public $name; 
} 

在控制器

Flight::create(['name' => 'test']); 
$flight = new Flight(); 
$flight->name = 'John'; //echo $flight->name 'John' it works 
$flight->save(); 

的質量分配創建工作,但是該方法 - >保存()爲該對象存儲空值。我不明白我做錯了什麼。請幫忙!

回答

1

嗯,首先,從您的模型中刪除public $name;,爲什麼你需要這個?

其次所有的都有,:

Flight::create(['name' => 'test']); 

$flight = new Flight(); 
$flight->name = 'John'; 
$flight->save(); 

是正確的。

而且,你在哪裏得到那個null

+0

將空值保存到數據庫中。我剛剛瞭解到 $ flight-> fill(['name'=>'john]) $ flight-> save(); //現在它會保存。 爲什麼沒有填充不起作用? – theshydeveloper

+0

@artur是正確的,它是在你的模型中定義了一個'$ name'屬性的B/C,所以Eloquent跳過魔法,它在被保存到數據庫的受保護'$ attributes'數組上定義屬性。 – mopo922

+0

@Artur你應該在你的答案中解釋。 – mopo922