【发布时间】:2021-05-26 11:50:03
【问题描述】:
我有一个错误:
“试图获取非对象的属性'id'(视图:C:
xampp\htdocs\klikdesaku\resources\views\admin\posts\create.blade.php)"
我在没有 laravel 集体形式的情况下使用它(我不知道它的名字)
示例:{{!! Form::select() !!}}
这是我的代码:
create.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');
【问题讨论】:
-
我认为删除 ->all() 可以解决问题。如果它没有在您的视图中尝试 @dd($categories)。它会显示 $categories 的结构
-
Form:select至少需要两个参数,如果您传递这些参数,则不需要循环以生成选项 -
删除
->all()也不起作用....我尝试使用@dd($categories),但它只以简单的形式显示标题和类别.. -
@apokryfos:我没有使用
Form:select,但我使用<select><option><\option><\select>...如果我想使用下拉菜单(类别数据库)创建帖子.. 在 PostController 中,我是什么在做什么?
标签: php laravel laravel-blade