Laravel中的填充方法不起作用?

marc_aragones

我正在学习如何使用Laravel框架,但是在填写模型时遇到了麻烦。这是我的代码:

型号Event

<?php
class Event extends Eloquent {
  //Some functions not used yet
}

这是控制器中的代码:

$event = new Event();
$event->fill(array('foo', 'bar'));
print_r($event->attributes);

那么,为什么print_r显示一个空数组呢?

阿尔法

属性是一个受保护的属性。使用$ obj-> getAttributes()方法。

实际上。首先,您应该将模型名称从更改为Event其他名称Laravel并具有一个Facade类,Illuminate\Support\Facades\Event因此可能会出现问题。

关于fill方法,您应该将关联数组传递给fill方法,例如:

$obj = new MyModel;
$obj->fill(array('fieldname1' => 'value', 'fieldname2' => 'value'));

还要确保您在声明的属性中具有一个protected $fillable检查质量分配)属性,Model并且该属性名称允许被填充。初始化时,您也可以做同样的事情Model

$properties = array('fieldname1' => 'value', 'fieldname2' => 'value');
$obj = new ModelName($properties);

最后,致电:

// Instead of attributes
dd($obj->getAttributes());

因为attributes是受保护的财产。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章