当前位置: 首页 > 知识库问答 >
问题:

如何检查数据透视表中的数据?

卫子平
2023-03-14

我有一个事件用户模型,其中有一个名为事件_用户的数据透视表。在透视表中,当用户按下“参与”按钮时,会保存事件id用户id

我已经显示了所有的事件列表。现在我想显示作为参与而不是作为参与而参与的事件。

我试过控制器

public function vieweventlist()
{
    $data['events'] = Event::with('users')->get();

    return view('page',$data);
}

刀片文件

@foreach($events as $event)
    <h1>Event Name</h1>
    @foreach($event->users as $check)
        @if($check->pivot->user_id == auth()->user()->id && $check->pivot->event_id == $event->id)
            <button type="button" class="btn participateevent" disabled>Participated</button>
        @else
            <button type="button" class="btn participateevent">Participate</button>
        @endif
    @endforeach
@endforeach

我已经在事件用户模型中设置了belongtomany关系。

这段代码的问题是第二个foreach循环是pivot表循环。假设透视表中有一个数据。我列出了5个事件。由于pivot table foreach(第二个)的缘故,刀片文件中只显示一个参与的按钮,但不显示@else参与按钮。

共有1个答案

宣俊豪
2023-03-14

您的第二个foreach使得只有有参与者(无论是否登录用户)的事件才会显示按钮(参与或参与)。如果事件没有附加任何用户,则不会显示任何按钮。

如果您想获取包含“当前用户是否已经参与”信息的事件列表,那么这里有一个更好的方法。

控制器

public function vieweventlist(){
    $data['events'] = Event::withCount('users', function($user) {
        $user->where('id','=', auth()->id());
    })->get();
 return view('page',$data);
}

刀身

@foreach($events as $event)
    <h1>Event Name</h1>
    @if($event->users_count)
      <button type="button" class="btn participateevent" disabled>Participated</button>
    @else 
      <button type="button" class="btn participateevent">Participate</button>
    @endif
@endforeach
 类似资料:
  • A 数据透视表介绍 B.1 什么是数据透视表? 数据透视表是一种可以快速汇总、分析大量数据表格的交互式工具。使用数据透视表可以按照数据表格的不同字段从多个角度进行透视,并建立交叉表格,用以查看数据表格不同层面的汇总信息、分析结果以及摘要数据。使用数据透视表可以深入分析数值数据,以帮助用户发现关键数据,并做出有关企业中关键数据的决策。 数据透视表是针对以下用途特别设计的:以友好的方式,查看大量的数据

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水平对齐方式。 数据 字体 设置字段名

  • 数据透视表显示二维交集的度量值,并在表格视图中表示数据。 图表属性 选择图表类型后,可以更改其属性来自定义图表: 选项 描述 常规 背景颜色 设置图表区域的背景颜色。 不透明度 设置背景颜色的不透明度。 显示边框 显示图表外部边框。 边界颜色 设置图表外部边框的颜色。 显示标题 显示图表的主要标题。 标题 指定图表的标题。 标题字体 设置标题的字体样式。 位置 设置标题的位置。 对齐 设置标题的水

  • 问题内容: 我想显示给定下表的数据透视表(交叉表)。 桌子: 插入: 现在,我想显示上述数据的数据透视表,如下所示: 预期结果 : 说明 :我想显示的每个员工都有,这是目前所有员工,节目中有多少组的员工可用,必须显示该员工在其他的也GROUP_NAME没有分配给哪些可用最后必须以数据透视格式显示。 问题答案: SELECT * FROM crosstab( $$SELECT grp.*, e.gr

  • 问题内容: 我的MySQL数据库具有以下列标题: 我有兴趣根据typeOfWork和月份显示结果。例如,所有typeOfWork条目将显示在左侧的第一列中,并且每个字段将在每一列的指定月份总计该特定typeOfWork。因此,我的SQL数据透视表语句当前为: 我目前遇到语法错误,指定了最后一行(从’DEC到ROLLUP’)。我感到困惑的原因是,我只是从脚本中的另一个工作枢轴表改编了该表。我认为差异