我正在尝试从数据库表multi_image
中提取多个图像并显示它们,这些数据库表具有链接到表posts
中一行的外键
posts
表中的每一行都链接到一个用户,但一个用户可以有很多帖子1:M关系
post
中的每一行可以有多张图片(最多4张图片,但是一张图片只能再次属于一个帖子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 index() { $users = auth()->user()->following()->pluck('profiles.user_id'); $posts = Post::whereIn('user_id', $users)->with('user')->latest()->paginate(5); $mImage = Multi_image::whereIn('post_id', $posts); // $mImage = Post::with('multi_image')->get(); return view('posts.index', compact('posts','mImage')); }
Post.php
<?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); } }
Multi_image.php
<?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'); } }
women.blade.php
posts table@foreach($posts as $post) @if($post->gender == 'women') {{-- <div class="row">--}} <div class="col-lg-4 col-md-6 col-sm-12 pt-5"> <div class="pb-1"> <span class="font-weight-bold"> <a href="/profile/{{ $post->user->id }}"> <img src="{{ $post->user->profile->profileImage() }}" class="rounded-circle w-100" style="max-width: 40px;"> <span class="text-dark">{{ $post->user->username }}</span> </a> </span> </div> <a href="/p/{{ $post->id }}"> @foreach($mImage as $image) <img src="{{ public_path($image->multi_image->image) }}" class="w-100"> @endforeach . . .
帖子
multi_image
multi_image table错误抛出:
未定义的变量:mImage(视图:C:.. \ resources \ views \ posts \ women.blade.php)我正在尝试从数据库表multi_image中提取多张图像并显示它们,这些数据库的外键链接到表帖子中的一行,posts表中的每一行都链接到一个用户,但一个...]]
未定义,因为您尚未在任何地方定义它。尝试在foreach中使用App\Multi_image::all() as $image
。
此外,您的模型类似乎使用了错误的名称。您应该将它们称为MultiImage
等-单数形式,而DB中的表以复数形式-multi_images
。