У меня ошибка:
"Попытка получить свойство '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');
2 ответа
При вызове pluck
вы извлекаете столбец «имя», а затем индексируете это значение по ключу, в данном случае «id» (второй аргумент). При вызове all
возвращаемой коллекции вы получаете соответствующий ассоциативный массив. Итак, ваше поле 'id' является ключом, а категория 'name' - значением:
@foreach ($categories as $id => $name)
<option value="{{ $id }}">{{ $name }}</option>
@endforeach
Даже если вы не позвонили all
и у вас есть Коллекция от pluck
, это все равно будет работать.
Документы Laravel 8.x - База данных - Конструктор запросов - Получение списка значений столбцов pluck
Документы Laravel 8.x - Коллекции - Доступные методы - all
public function create(){
$this->authorize('create', Post::class);
$categories = Category::->all(['name','id']);
return view ('admin.posts.create')->with(['categories'=>$categories])
}
Похожие вопросы
Новые вопросы
php
PHP - это широко используемый высокоуровневый, динамический, объектно-ориентированный и интерпретируемый язык сценариев, в первую очередь предназначенный для серверной веб-разработки. Используется для вопросов о языке PHP.