【问题标题】:Querying a value from two related table in laravel从 laravel 中的两个相关表中查询一个值
【发布时间】:2019-11-20 05:54:30
【问题描述】:

我有相关的表事件和门票

class Event {
  public function tickets(){
    return $this->hasMany(Ticket::class);
  }
}

class Ticket {
  public function events(){
    return $this->belongsTo(Event::class);
  }
}

我有一个 store 函数从 URL 获取数据并路由

$ticket=new Ticket;
$ticket->userName= $request->input('userName');
$ticket->userEmail= $request->input('userEmail');
$ticket->phoneNumber= $request->input('phoneNumber');
$ticket->regular_quantity= $request->input('regular_quantity');
$ticket->vip_quantity= $request->input('vip_quantity');
$ticket->event_id=$request->route('id');

我有一个变量max_attendees,我想查询最大参加者,这是事件表中事件ID 为的列

$ticket->event_id=$request->route('id');

查询

$maximum_attendants=\App\Models\Event::with('Max_attendies')->where('id','=='$event_id');

事件表

我已经尝试过了,但给了我语法错误,unexpected 'event_id' (T_STRING),expecting ')'

【问题讨论】:

  • ::with('Max_attendies') 是什么意思?你在Event 模型中有这样的关系吗?或者它只是events 表中的一列?您是否尝试为某些 Event 查找 Ticket 并获取 Event 的 Max_attendies 列?
  • 它是事件表中的一列,我想获取 max_attendies 的值,它是事件表中的一列

标签: laravel


【解决方案1】:

您在 where 子句中缺少 ,

where('id','==', $event_id)

【讨论】:

  • 嘿,我已经更改了它并回显 $Max_attendies 现在正在获取类 Illuminate\Database\Eloquent\Builder 的对象无法转换为字符串
  • 因为$Max_attendies 不是字符串所以你得到错误,你不能echo 类对象
  • 我该如何解决这个问题?
【解决方案2】:

如果您从“tickets”表中计算出勤率,则可以使用关系进行计数,

$event = Event::find($id);
$event->tickets()->count();

【讨论】:

  • noo 实际上并没有尝试获取最大数量,而是获取活动参与者的价值
  • 您是否要计算特定活动的所有出席人数?
  • 该值已经输入到事件表中每个事件都有特定的人数我想要根据 event_id 的值,该值将存储变量 max_attendies
  • 可以分享一下你的表结构吗?
猜你喜欢
  • 2021-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多