我想弄清楚为什么一个空对象通过我的路线传递。我有一个用户模型
class User extends Model
{
protected $table = 'users';
protected $guarded = [];
public function userObjectives()
{
return $this->hasMany('App\UserObjectives');
}
}
我有一个UserObjectives模型
class UserObjectives extends Model
{
protected $table = 'user_objectives';
protected $guarded = [];
public function user()
{
return $this->belongsTo('App\User');
}
}
然后我有一个索引控制器,显示默认页面。索引函数获取登录用户并将其传递给视图
public function index()
{
$loggedInUser = Auth::user()->getFirstName() . ' ' . Auth::user()->getLastName();
$user = User::where('userName', '=', $loggedInUser)->first();
if($user) {
return view('index', compact('user'));
} else {
return view('auth.login');
}
}
我这样做是因为我从Active Directory映射用户。在我的索引视图中,如果我执行以下操作,我可以看到登录用户的详细信息。
{{ dd($user) }}
在索引视图中,我有一个指向我传递用户对象的路线的链接
{!! link_to_route('users.userObjectives.index', 'My Info', array($user), array('class' => 'btn btn-info')) !!}
现在在UserObjectives Controller中我有
public function index(User $user)
{
dd($user);
}
由于某种原因,上面显示了一个空的用户对象。如果我将其更改为以下内容,没有用户,我将获得登录用户的ID。
public function index($user)
{
dd($user);
}
为什么这个函数会显示一个空的User Object,即使我在视图中可以看到我传递的User对象确实有数据?
由于