laravel:访问一个属性而不声明它

时间:2016-02-19 06:41:16

标签: laravel properties model

在一些基于laravel的包中,引用了未声明的属性,但是该模型的表列的名称。

门票表:

  id 
  name
  content

Ticket 型号:

 class Ticket extends Model {

//there is no "protected $content;" defined inside model
$this->content = foo;
 ......

}

是否根据模型表列动态创建模型属性?

2 个答案:

答案 0 :(得分:2)

您需要在模型中设置$ guarded或$ fillable https://laravel.com/docs/5.1/eloquent#mass-assignment。例如:

class Ticket extends model {
  protected $guarded =[];
}

这样您就可以访问所有表格列并进行更新。

class Ticket extends model {
  protected $fillable = ['name', 'content'];
}

这样,您就可以访问namecontent列,并仅使用它们。

答案 1 :(得分:0)

根据映射的数据库表列隐式声明模型属性。

您可以显式声明匹配表

protected $table = 'tablename';