4
我使用內Laravel 5.4 口才車型在本文檔中,我看到:Laravel/Eloquent建議覆蓋特徵屬性?
您還可以使用create方法來保存新模式單一 線。插入的模型實例將從 方法返回給您。但是,在這樣做之前,您需要在模型上指定 可填寫或保護屬性,因爲默認情況下所有Eloquent模型 都可以防止批量分配。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = ['name'];
}
然而,$可填充屬性在所有車型使用的特點已經定義:
trait GuardsAttributes
{
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [];
...
的PHP文件是清楚的特質屬性:
如果trait定義了一個屬性,那麼類不能定義一個名稱相同的屬性 ,否則會發出錯誤。這是一個E_STRICT,如果 類定義兼容(相同的可見性和初始值) 否則致命錯誤。
Laravel文檔是否存在對adivsed實現的錯誤?
兩個都不對。你有班級A,你在班上使用特質。特質=語言輔助複製粘貼。 'A'類不能包含'protected $ fillable' - 它不會,因爲你的類'A'是'Illuminate \ Database \ Eloquent \ Model'。到目前爲止這麼好 - 但現在你擴展了'Model',你可以覆蓋'protected $ fillable'屬性。繼承規則允許這樣做。你的問題是有效的,但都是文件摘錄。 – Mjh