Невозможно загрузить данные модели в функцию create () (ОШИБКА: вызов функции-члена с () в массиве) - PullRequest
0 голосов
/ 01 мая 2019

Я получаю эту ошибку при попытке загрузить таблицу в мою функцию create (), чтобы пользователь мог выбрать из списка team_names на странице создания пользователя: Call to a member function with() on array

Вот мой UserController.php

use Illuminate\Http\Request;
use App\Game;
use App\User;
use App\Team;

...

public function create()
  {
    $pagetitle = 'Create User';
    $teams = Team::orderBy('team_name', 'asc')->get();

    if(auth()->user()->user_type !== 'admin'){
      return redirect('/')->with('error', "You do not have access to the game you attempted to view.");
    }

    return view('pages.admin.users.create', compact('pagetitle')->with('teams', $teams));
  }

Вот мой create.blade.php

  @if(count($teams) > 0)
    @foreach($teams as $team)
      <option value="{{$team->id}}">{{$team->team_name}}</option>
    @endforeach
  @else
    <p>No teams found...</p>
  @endif

Отношения действительно не должны иметь значения в этом случае, хотя у меня все они настроены правильно.

Для контекста: я создаю «пользователя», но загружаю все имена «команды».

Любая помощь очень ценится.

Ответы [ 2 ]

2 голосов
/ 01 мая 2019

compact('pagetitle')->with('teams', $teams) неверно.

compact('pagetitle') возвращает array.в массиве нет функции с именем with().

Для возврата массив содержит как pagetitle, так и teams, вы можете использовать compact.

compact('pagetitle', 'teams');

Вот и все.

Итак,

return view('pages.admin.users.create', compact('pagetitle', 'teams'));
1 голос
/ 01 мая 2019

Вы можете использовать compact () или with () для передачи объекта на просмотр.

return view('pages.admin.users.create',compact('pagetitle','teams'));
OR
return view('pages.admin.users.create')->with('pagetitle',$pagetitle)->with( 'teams',$teams);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...