如果laravel中的关系是多对多,则拉出特定数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如果laravel中的关系是多对多,则拉出特定数据相关的知识,希望对你有一定的参考价值。

我想询问如何从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

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

答案

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

您可以使用lists检索列值列表,查看数据库查询生成器Retrieving Results section

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

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

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

希望这可以帮助。

以上是关于如果laravel中的关系是多对多,则拉出特定数据的主要内容,如果未能解决你的问题,请参考以下文章

在多对多关系 laravel4 的情况下更新数据透视表

Laravel 8:在空的多对多关系中使用枢轴时出错

Laravel 定义同一张表的多对多关系

Laravel 中多对多关系中连接表的命名约定

Laravel Eloquent - 返回具有特定角色的用户(多对多关系)

如何通过 Eloquent 中具有多对多关系的外部表中的列聚合进行分组?