也许我做错了,但我来自PDO的世界,我习惯于将参数传递给一个实例化的行,然后该构造函数将为我动态设置一个字段.如何通过Eloquent实现这一目标?
// Old way
$dm = new DataModel('value');
Run Code Online (Sandbox Code Playgroud)
DataModel.php
class DataModel() {
function __construct($value = null) {
$this->value = $value;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经读过Eloquent为您提供了一种::create()
方法,但我不想在此阶段保存记录.
这里的问题是Eloquent有自己的构造函数,我不确定我的模型是否可以完全覆盖该构造函数.
Mar*_*łek 11
您可以添加到您的模型:
public function __construct($value = null, array $attributes = array())
{
$this->value = $value;
parent::__construct($attributes);
}
Run Code Online (Sandbox Code Playgroud)
这将做你想要的,并启动父构造函数.
我相信你正在寻找Laravel所谓的Mass Assignment
您只需定义一个可填充属性数组,然后在创建新对象时就可以传入这些属性.无需覆盖构造函数!
class DataModel extends Eloquent {
protected $fillable = array('value');
}
$dataModel = new DataModel(array(
'value' => 'test'
));
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看官方文档
归档时间: |
|
查看次数: |
9397 次 |
最近记录: |