我正在学习如何使用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] 删除。
我来说两句