传递给路线的空对象

时间:2016-06-30 10:53:49

标签: laravel laravel-5 laravel-5.1

我想弄清楚为什么一个空对象通过我的路线传递。我有一个用户模型

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对象确实有数据?

由于

0 个答案:

没有答案