Проблема Laravel 5.8 в контроллере при попытке доступа к массиву - PullRequest
0 голосов
/ 11 апреля 2019

Я пытаюсь перебрать массив в одном из моих контроллеров в приложении Laravel, а затем передать его для просмотра.

В настоящее время выдается ошибка "Попытка получить свойство необъекта" , которая сообщает мне, что массив возвращается как ноль?

В моем контроллере ниже я пытаюсь установить массив как пустой по умолчанию, а затем передать значения в этот массив перед передачей его в представление, например так:

Контроллер рецептов

 public function edit($id)
    {
        $recipe = Recipe::find($id);
        $tags = Tag::all();
        $tags2 = array();
        foreach ($tags as $tag){
            $tags2[$tag->id] = $tag->name;
        }

        return view('recipes.edit')->with('recipe', $recipe)->with('tags', $tags2);
    } 

и мой взгляд

           <fieldset>
                    <small class="errorMessage"></small>
                    <label for="tags">Tags</label>
                    <select name="tags[]" id="tagsList" class="select2-multi" multiple="multiple">
                        @foreach($tags as $tag)
                             <option value="{{$tag->id}}">{{$tag->name}}</option>
                        @endforeach
                    </select>
            </fieldset>

Суть в том, чтобы обновить существующие теги в рецепте (мои рецепты эквивалентны сообщениям в этом приложении). Хранение и отображение тегов работает нормально, но у меня возникают проблемы при редактировании. Пожалуйста, дайте мне знать, если вы увидите что-то, чего я не вижу.

1 Ответ

3 голосов
/ 11 апреля 2019

используйте этот код

public function edit($id)
{
    $recipe = Recipe::find($id);
    $tags = Tag::pluck('name', 'id');

    return view('recipes.edit')->with('recipe', $recipe)->with('tags', $tags);
}

в поле зрения

@foreach($tags as $id => $name)
     <option value="{{$id}}">{{$name}}</option>
@endforeach
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...