此集合实例上不存在异常属性 [图像]
Posted
技术标签:
【中文标题】此集合实例上不存在异常属性 [图像]【英文标题】:Exception Property [image] does not exist on this collection instance 【发布时间】:2021-11-19 02:35:20 【问题描述】:我正在学习使用 Laravel 制作 Instagram 克隆的教程。最后我开始做一些我自己的改变。
我正在尝试从 PostsController 获取用户的个人资料标题和图像。现在我可以成功获得个人资料标题,但我想获得相同的个人资料图像,但我无法做到。我正在使用干预图像。
这是我的 PostsController
public function index()
$users = auth()->user()->following()->pluck('profiles.user_id');
$posts = Post::whereIn('user_id', $users)->latest()->paginate(5);
$newUsers = Profile::all('id', 'title', 'image')->sortDesc();
// $newUsersImage = Image::make(public_path("storage/$newUsers->image"))->orientate()->fit(100, 100);
dd($newUsers->image);
return view('posts.index', compact('posts', 'newUsers'));
当我 dd newUsers 时,它会给出以下结果:
Illuminate\Database\Eloquent\Collection #469 ▼
#items: array:13 [▼
12 => App\Models\Profile #1451 ▼
#fillable: array:4 [▶]
#connection: "mysql"
#table: "profiles"
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
+preventsLazyLoading: false
#perPage: 15
+exists: true
+wasRecentlyCreated: false
#attributes: array:3 [▶]
#original: array:3 [▶]
#changes: []
#casts: []
#classCastCache: []
#dates: []
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#guarded: array:1 [▶]
11 => App\Models\Profile #1443 ▶
10 => App\Models\Profile #1437 ▶
9 => App\Models\Profile #1454 ▶
8 => App\Models\Profile #1452 ▶
7 => App\Models\Profile #1419 ▶
6 => App\Models\Profile #1442 ▶
5 => App\Models\Profile #1461 ▶
4 => App\Models\Profile #1459 ▶
3 => App\Models\Profile #1433 ▶
2 => App\Models\Profile #1455 ▶
1 => App\Models\Profile #1411 ▶
0 => App\Models\Profile #1410 ▶
]
但是当我 dd $newUsers->image 它说:异常属性 [image] 在这个集合实例上不存在。
但在我看来,我通过使用相同的 $newUsers->image 来获取地址。
请原谅我的语言,如果我不能更好地解释,我对 php 和 laravel 很陌生。
【问题讨论】:
那是因为 $newUsers 有多个配置文件,它是配置文件的集合。您首先需要通过foreach ($newUsers as $profile) echo $profile->image; );
之类的操作来选择配置文件
【参考方案1】:
根据我在代码中看到的内容,我认为 $newUsers 是一个集合,而不是单个模型。意味着它是模型的集合。
集合没有图像,但集合中的每个项目都有一个。
只需对它们执行一个 foreach 循环,您将获得 Profile 对象和模型实例的图像。
foreach ($newUsers as $profile)
dd($profile->image);
【讨论】:
谢谢...我需要循环浏览收藏,错过了这个想法...问题已解决 很高兴为您提供帮助:)【参考方案2】:因为$newUsers = Profile::all('id', 'title', 'image')->sortDesc();
的返回是一个数组
您将其视为 Profile 的单个实例。
试试
dd($newUsers[0]->image)
假设模型有一个应该可以工作的图像列
【讨论】:
感谢问题已解决,我需要遍历集合。以上是关于此集合实例上不存在异常属性 [图像]的主要内容,如果未能解决你的问题,请参考以下文章