php - Laravel - 试图获取非对象的属性“id”
问题描述
我有一个错误:
“试图获取非对象的属性'id'(查看:C:
xampp\htdocs\klikdesaku\resources\views\admin\posts\create.blade.php)”
我在没有 laravel 集体形式的情况下使用它(我不知道它的名字)
例子:{{!! Form::select() !!}}
这是我的代码:
创建.blade.php
@foreach ($categories as $category )
<option value="{{$category->id}}">{{$category->name}}</option>
PostController.php
public function create(){
$this->authorize('create', Post::class);
$categories = Category::pluck('name','id')->all();
return view ('admin.posts.create', ['categories'=>$categories]);
}
public function store(){
$this->authorize('create', Post::class);
$inputs = request()->validate([
'title'=>'required',
'post_image'=>'file', //mime: jpeg, png
'body'=>'required',
'category_id'=> 'required'
]);
if(request('post_image')){
$inputs['post_image'] = request('post_image')->store('images');
}
auth()->user()->posts()->create($inputs);
session()->flash('post-create-message', 'Post was Created ' . $inputs['title']);
return redirect()->route('post.index');
解决方案
调用时pluck
,您正在拉一列“名称”,然后通过键索引该值,在本例中为“id”(第二个参数)。调用all
返回的集合时,您将获得底层关联数组。所以你的 'id' 字段是键,类别 'name' 是值:
@foreach ($categories as $id => $name)
<option value="{{ $id }}">{{ $name }}</option>
@endforeach
即使你没有打电话all
并且你有这个 Collectionpluck
仍然可以正常工作。
推荐阅读
- python - Python - 在数组中查找对应关系
- excel-formula - 申根短期签证的公式是什么?
- sql-server - System.TypeInitializationException:“'System.Data.Entity.Internal.AppConfig' 的类型初始化程序引发了异常。”
- reactjs - 以 CRUD 形式执行更新操作的方法是什么?
- apache-spark - 在 spark UI 中,我的工作和阶段屏幕显示为空白,可能出了什么问题?
- python - get_reader() 获得了参数“模式”的多个值
- c# - C#同步调用ProcessEventsAsync接收消息
- angular - 如何使用角度为离子4中的元素赋予css?
- wpf - 覆盖 MenuItem ControlTemplate 中断点击事件
- android - 无法解析片段中的 ViewModelProvider 构造?