尝试将表加载到我的create()函数中时出现此错误,以便用户可以在创建用户页面的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
在这种情况下,关系确实不重要,尽管我确实已正确设置了所有关系。
对于上下文:我正在创建“用户”,但正在加载所有“团队”名称。
非常感谢您的帮助。
答案 0 :(得分:2)
compact('pagetitle')->with('teams', $teams)
是错误的。
compact('pagetitle')
返回一个array
。数组上没有名为with()
的函数。
要返回包含pagetitle
和teams
的数组,可以使用压缩。
compact('pagetitle', 'teams');
就是这样。
所以
return view('pages.admin.users.create', compact('pagetitle', 'teams'));
答案 1 :(得分:1)
您可以使用compact()或with()将对象传递给视图。
return view('pages.admin.users.create',compact('pagetitle','teams'));
OR
return view('pages.admin.users.create')->with('pagetitle',$pagetitle)->with( 'teams',$teams);