如果关系船在laravel中有多对多,则拉出特定数据

时间:2016-01-24 19:37:41

标签: php json laravel laravel-5.2

我想询问如何从Laravel数据库中提取特定数据(某些列)

这是我的代码:

用户模型:

public function events(){
    return $this->belongsToMany('App\Events')->withTimestamps();
}

事件控制器:

public function showjson(){
    $user_id=Auth::user()->id;
    $events = DB::table('events')
            ->select(
                'id',
                'calendar_title as title',
                'startdate as start',
                'enddate as end',
                'calendar_color as backgroundColor',
                'calendar_color as borderColor')
            ->where('user_id',$user_id)
            ->get();
    $user=Auth::user();
    $eventData=$user->events;


    return $eventData;
}

我已经有了这两者之间的关系,我可以通过这个得到数据:

$user = Auth::user();
$eventData = $user->events;

但我希望按名称获取特定列,例如上面的select code

这是我可以调用特定数据并更改列名的另一种方法吗?

1 个答案:

答案 0 :(得分:0)

  

我希望在json中仅显示calendar_title,仅显示calendar_des。

您可以使用$user->events->lists('calendar_title','calendar_des'); 检索列值列表,查看数据库查询生成器 Retrieving Results section

$user->events->lists('calendar_title','calendar_des')->toJson();

如果您想要返回Json格式,可以使用 toJson() method

Claims in id_tokens

希望这有帮助。