Php 通过关系Laravel访问两个表数据

Php 通过关系Laravel访问两个表数据,php,database,laravel,Php,Database,Laravel,我必须创建具有多对多关系的表,如下所示 思想、日志、条目和情感。透视表思想、日志、条目也在下面 如何使用数据透视表中的数据访问两个表中的数据。例如,tj_entry_id13与em_id3和5关联,我想访问情感表中这些id的图像。如何在控制器中执行此操作 它们由这个数据透视表连接 这是控制器 $user_id = auth()->user()->id; $user = User::find($user_id); $thought_

我必须创建具有多对多关系的表,如下所示

思想、日志、条目和情感。透视表思想、日志、条目也在下面

如何使用数据透视表中的数据访问两个表中的数据。例如,
tj_entry_id
13与
em_id
3和5关联,我想访问情感表中这些id的图像。如何在控制器中执行此操作

它们由这个数据透视表连接

这是控制器

        $user_id = auth()->user()->id;
        $user = User::find($user_id);
        $thought_journal_entries = ThoughtJournalEntry::with('emotions')->where('user_id', $user_id)->orderBy('created_at', 'desc')->paginate(15);
        /*$thought_journal_entries = \DB::table('thought_journal_entries')->where('user_id', $user_id)->orderBy('created_at', 'desc')->paginate(15);*/

        return view('thoughtjournal.index')->with('thought_journal_entries', $thought_journal_entries);

我相信在这里使用
方法应该会有所帮助,即所谓的急切加载。因此,在控制器中,您可以执行以下操作:

$thought_journal_entries = ThoughtJournalEntry::with('emotions')
      ->where('id', 13)->get();

在视图中,您将执行以下操作:

@foreach($thought_journal_entries as $entry)
  {{$entry->id}}
  @foreach($entry->emotions as $emotion)
    {{$emotion->id}}
  @endforeach
@endforeach

你的模型是如何建立的?你能分享一下代码吗?我刚刚用modelsGreat更新了我的问题,非常感谢。我如何在视图文件中引用它@foreach($think\u journal\u entries as$think\u journal\u entries)@foreach($emotionas as$emotional){{{{$emotional->image}}@endforeach类似于我刚才添加到答案中的内容我想我可能在控制器中出错了,我刚刚在问题中添加了代码。感谢您的帮助不要返回任何内容@foreach($think\u journal\u entry->$emotions as$emotion){{{$emotion->image}

@endforeach显示您的图像斑点数据是另一回事。。。你应该用谷歌搜索一下。检查循环是否与显示ID一起工作
        $user_id = auth()->user()->id;
        $user = User::find($user_id);
        $thought_journal_entries = ThoughtJournalEntry::with('emotions')->where('user_id', $user_id)->orderBy('created_at', 'desc')->paginate(15);
        /*$thought_journal_entries = \DB::table('thought_journal_entries')->where('user_id', $user_id)->orderBy('created_at', 'desc')->paginate(15);*/

        return view('thoughtjournal.index')->with('thought_journal_entries', $thought_journal_entries);
$thought_journal_entries = ThoughtJournalEntry::with('emotions')
      ->where('id', 13)->get();
@foreach($thought_journal_entries as $entry)
  {{$entry->id}}
  @foreach($entry->emotions as $emotion)
    {{$emotion->id}}
  @endforeach
@endforeach