And*_*ker 8 php laravel laravel-5
是否有任何可能的方式来延迟加载在Laravel模型的自定义属性,而不使用每次加载它appends的财产?我正在寻找类似于你可以懒惰加载雄辩关系的方式.
例如,在模型上给定此访问器方法:
public function getFooAttribute(){
return 'bar';
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做到这样的事情:
$model = MyModel::all();
$model->loadAttribute('foo');
Run Code Online (Sandbox Code Playgroud)
这个问题是不一样的事情的自定义属性添加到负载的Laravel /雄辩的模式?因为它想在每个模型加载上加载自定义属性 - 我希望仅在指定时延迟加载属性.
我想我可以使用与自定义属性相同的名称为模型实例分配属性,但这具有两次调用访问器方法的性能缺点,如果该访问器影响类属性可能会产生意外的副作用,并且只是感觉很脏.
$model = MyModel::all();
$model->foo = $model->foo;
Run Code Online (Sandbox Code Playgroud)
有没有人有更好的方法处理这个?
Ham*_*bot 14
这是序列化吗?您可以append()在Model实例上使用该方法:
$model = MyModel::all();
$model->append('foo');
Run Code Online (Sandbox Code Playgroud)
该append方法还可以将数组作为参数.
| 归档时间: |
|
| 查看次数: |
4337 次 |
| 最近记录: |