我正在尝试找出如何在使用Sentry 2时返回我为User模型设置的关系。
通常,我有一个像这样检索的用户:
$user = User::find(1);
// get some relation
return $user->profile->profile_name;
但是,现在当我实施Sentry 2时,我可以像这样检索登录用户:
$user = Sentry::getUser();
这样我可以轻松访问我的数据库中的users
表,但是如何获取我在User.php
模型中设置的关系和方法?
这似乎是丛生的,而不是Laravel-ish:
User::find(Sentry::getUser()->id)->profile->wizard_completed;
似乎有点......倒退。
你能帮助我吗? =)答案 0 :(得分:21)
使用您的关系扩展Sentry创建您自己的用户模型:
<?php
use Cartalyst\Sentry\Users\Eloquent\User as SentryModel;
class User extends SentryModel {
public function profile()
{
return hasOne(...);
}
}
发布sentry的配置:
php artisan config:publish cartalyst/sentry
告诉Sentry使用你的模型,现在扩展Sentry的所有功能加上你的模型:
'model' => 'User',
然后你就可以:
echo Sentry::getUser()->profile->wizard_completed;