在我的控制,我有:Laravel覆盖指定者自定义参数
$Locations = Locations::where(something);
$Locations->get()->toArray(true);
和模型里面:
function toArray($include_all = false) {
var_dump($include_all);
}
将包括所有的变量是假的,虽然功能被调用。 它有这样做的原因吗?
我想调用自定义的指定者,因为我有,我想换不同的结构更一对多关系(其中一些是序列化为例)
谢谢
是的,但我将不得不使用 - >地图()每次我做数据库的时间查询,我想在模型的toArray()函数内部执行它,所以我不需要复制代码 – Scobee
你可以编写一个包含所有逻辑的函数,例如: 'function myFunc($ arg){return //映射逻辑}''Model :: someQuery() - > get() - > map('myFunc') - > toArray();' 'toArray()'的作业只是将项目集合转换为数组,没有更多。 – Morilog
还应该注意''get''总是返回'Illuminate \ Support \ Collection'的一个实例。此外,' - > toArray()'是由'Illuminate \ Support \ Collection'提供的一种方法,因此覆盖它似乎不是一种理智的方法。该映射确实看起来像是去这里的正确方法。 – Ohgodwhy