Php 尝试使用Laravel中的外键从数据库中提取多行

Php 尝试使用Laravel中的外键从数据库中提取多行,php,laravel,eloquent,phpmyadmin,Php,Laravel,Eloquent,Phpmyadmin,我正试图从数据库表multi_image中提取多个图像并显示它们,该表中的外键链接到表posts posts表中的每一行都链接到一个用户,但一个用户可以有多个posts 1:M关系 post中的每一行可以有多张图片(最多4张图片),但一张图片只能属于一张post 1:M PostsController.php <?php namespace App\Http\Controllers; use App\Multi_image; use App\Post; use App\User; us

我正试图从数据库表
multi_image
中提取多个图像并显示它们,该表中的外键链接到表
posts

posts
表中的每一行都链接到一个用户,但一个用户可以有多个posts 1:M关系

post
中的每一行可以有多张图片(最多4张图片),但一张图片只能属于一张post 1:M

PostsController.php

<?php

namespace App\Http\Controllers;
use App\Multi_image;
use App\Post;

use App\User;
use DB;
use Illuminate\Http\Request;
use Intervention\Image\Facades\Image;
use function Sodium\compare;

class PostsController extends Controller
{
public function __construct()
{
    $this->middleware('auth');
}

public function show(\App\Post $post)
{
    $postId = $post->id;
    $mImage = DB::table('multi_image')->where('post_id', $postId)->pluck('image');
    $postsIm = Post::whereIn('id', $mImage)->paginate(5);
    return view('posts.show', compact('post', 'mImage'));
}
    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $guarded = [];

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    public function images()
    {
        return $this->hasMany(Multi_image::class);
    }
}
    <?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Multi_image extends Model
{
    protected $table = "multi_image";

    public function post()
    {
        return $this->belongsTo('App\Post', 'post_id');
    }
}
  @foreach($mImage as $image)
        <div class="details_image">
            <div class="details_image_thumbnails d-flex flex-row align-items-start justify-content-between">
                <div class="details_image_thumbnail" data-image=""><img src="{{ URL::to('/') }}/images/{{$image }}" alt=""></div>
            </div>
        </div>
        @endforeach
    </div>
    <div class="col-5">
        <img src="{{ URL::to('/') }}/images/{{$mImage->first() }}" class="w-100">
    </div>
                            .
                            .
                            .

它是未定义的,因为您没有在任何地方定义它。在foreach中尝试使用
App\Multi_image::all()作为$image


此外,您的模型类似乎有错误的名称。您应该将它们称为
多图像
等-单数形式,并将DB中的表格称为复数形式-
多图像

我已经设法使用另一种方法解决了问题,并调整了代码。谢谢您的建议,我将在以后的实例中记住这些建议,我将对我的模型和DB进行更改