4

我试图找出在使用 Sentry 2 时如何返回我为我的用户模型设置的关系。

通常,我有一个像这样检索的用户:

$user = User::find(1);

// get some relation
return $user->profile->profile_name;

但是,现在当我实现了 Sentry 2 时,我可以像这样检索登录的用户:

$user = Sentry::getUser();

这样我可以轻松访问users数据库中的表,但是如何获取我在User.php模型中设置的关系和方法?

这似乎有点笨拙,而不是 Laravel 风格:

User::find(Sentry::getUser()->id)->profile->wizard_completed;

似乎有点……倒退了。

你们能帮帮我吗?=)

4

1 回答 1

21

扩展哨兵创建你自己的用户模型与你的关系:

<?php

use Cartalyst\Sentry\Users\Eloquent\User as SentryModel;

class User extends SentryModel {

    public function profile()
    {
        return hasOne(...);
    }

}

发布哨兵的配置:

php artisan config:publish cartalyst/sentry

并告诉 Sentry 使用您的模型,该模型现在扩展了 Sentry 的所有功能以及您的功能:

'model' => 'User',

然后,您将能够:

echo Sentry::getUser()->profile->wizard_completed;
于 2014-02-19T19:26:40.257 回答