我有一个雄辩的结构化查询,例如:
public function showUserWithFriends($username){
$user = User::where('name','=',$username)->with('friends','friends.jobs')->get()->first();
return $user;
}
这是使用用户,某些用户名,他的朋友和他的朋友作业查询。但是我的friends.jobs在SQL数据库中是json_decoded。是否有任何花哨的方法可以在Model中对其进行解码,还是应该去Blade那里做工作?
编辑:
代码输出:
{
'username': 'john.eager',
'firstname': 'John',
'lastname: 'Eager'
'friends': [
{
'firstname': 'Marco',
'lastname': 'Polo',
'jobs':[
{
'data': "{\"1\":\"Software Inc\",\"2\":\"Programmer\",\"3\":\"Salary Great\",\"4\":\"Holiday No\"}"
}
]
},
{
'firstname': 'Dragon',
'lastname': 'Slayer',
'jobs':[
{
'data': "{\"1\":\"Software Inc\",\"2\":\"Programmer\",\"3\":\"Salary Great\",\"4\":\"Holiday No\"}"
}
]
}
]
}
由于您的工作很有口才,因此您可以在模型中进行处理,而无需担心。您还可以提供一种相反的方法:将作业数组从数据库保存到json。
class Job extends Eloquent
{
/**
* will be executed as soon as you call $job->jobs
*
* @return array
public function getData()
{
$data = json_decode($this->jobs);
return $data;
}
}
这适用于任何财产。所以如果你my_pretty_long_attribute
愿意的话public function getMyPrettyLongAttribute()
。
以你的例子
@foreach ($user->friends as $friends)
@foreach ($friends->jobs as $job)
$job->data // <- this will be your [1: "Software Inc", 2: "Programmer", ...] array
@endforeach
@endforeach
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句