Laravel雄辩的查询

拉沙尔

我有一个雄辩的结构化查询,例如:

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\"}"
            }
       ]
     }
  ]
}
西蒙·威基(Simon Wicki)

由于您的工作很有口才,因此您可以在模型中进行处理,而无需担心。您还可以提供一种相反的方法:将作业数组从数据库保存到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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章