Php 连接上的Laravel/雄辩变异模型
我正在尝试对模型进行变异,以显示字符串数组而不是对象数组 电流输出Php 连接上的Laravel/雄辩变异模型,php,laravel,join,eloquent,mutators,Php,Laravel,Join,Eloquent,Mutators,我正在尝试对模型进行变异,以显示字符串数组而不是对象数组 电流输出 { "id": 1, "company_name": "blah" "language": [ { "name": "English" }, { "name": "French" } ] }, { "id": 2, "company_name": "blah2" "language": [ { "name": "Englis
{
"id": 1,
"company_name": "blah"
"language": [
{
"name": "English"
},
{
"name": "French"
}
]
},
{
"id": 2,
"company_name": "blah2"
"language": [
{
"name": "English"
},
{
"name": "French"
}
]
}
期望输出
{
"id": 1,
"company_name": "blah"
"language": ["English","French"]
},
{
"id": 2,
"company_name": "blah2"
"language": ["English","French"]
}
合作伙伴模式
class Partner extends Eloquent
{
protected $table = 'property_managers';
protected $visible = array('id','company_name','language');
public function language(){
return $this->belongsToMany('Language', 'property_manager_language', 'property_manager_id', 'language_id');
}
}
语言模型
class Language extends Eloquent
{
protected $table = 'languages';
protected $visible = array('name');
public function propertyManager()
{
return $this->belongsToMany('PropertyManager');
}
}
我通过下面的代码片段访问它
$pm=Partner::with('language')->get()代码>
我研究了变种,但在合作伙伴模型中,它似乎没有击中该属性
public function getLanguageAttribute(){
//run my code to flatten to array
}
所以我很好奇,如果变异子对连接不起作用,或者如何修改连接的返回。我可以向语言模型添加一个mutator,但这只会修改该特定模型的属性。任何见解都会有所帮助。感谢您的型号
public function getLanguagesAttribute(){
return array_pluck(collect($this->language)->toArray(), 'name');
}
卢埃戈·普拉巴·康埃斯托
$partner = Partner::find(1);
return $partner->languages;