如何在 Laravel 请求中返回相关表中的 ID 字段

我有两个相关的表,我想返回所有字段,包括 ID(键)字段。我下面的查询返回除 ID 之外的所有字段。如何从其中一个表中返回 ID 字段?

'programmes' => ProgrammeInstances::with('programmes')->get(),

下面的查询返回未知列“programmes.programme_title”,因为它正在表“programme_instances”中寻找它

'programmes' => ProgrammeInstances::with('programmes')->select('programmes.programme_title','programmeInstances.id','programmeInstances.name','programmeInstances.year')->get(),
caojunyi 回答:如何在 Laravel 请求中返回相关表中的 ID 字段

Laravel 提供了多种关系,其中之一是 hasMany() 关系,它应该返回一个集合,其中 User 在你的数据库中有许多行

例如,在您的 User 模型中:

public function programmes() {
  return $this->hasMany(Program::class);
}

现在在您的控制器中,您可以:

public function edit($id) {
  $programmes = User::find($id)->with('programmes')->get();

  return view('user.edit')->with('programmes',$programmes);
}

然后你可以在你的视图中循环它

@forelse($programmes->programmes as $program)
   // provide the data
@empty 
  // the user doesn’t have any programmes
@endforelse
,

我在下面找到的一个解决方案 - 仍然不确定为什么当我获取所有字段时不会自动返回 ID,但在我指定单个字段时有效:

'programmes' => ProgrammeInstances::with('programmes')
    ->get()
    ->transform(fn ($prog) => [
      'programme_title' => $prog->programmes->programme_title,'id' => $prog->id,'name' => $prog->name,'year' => $prog->year,]),
本文链接:https://www.f2er.com/912.html

大家都在问