php - 使用 Laravel 4 用户模型关系与 Sentry 2 包的正确方法

标签 php model laravel-4 relation cartalyst-sentry

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

通常,我会像这样检索用户:

$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;

这似乎有点……倒退了。

你们能帮帮我吗? =)

最佳答案

Extend Sentry 创建你自己的 User 模型和你的关系:

<?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;

关于php - 使用 Laravel 4 用户模型关系与 Sentry 2 包的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21890188/

相关文章:

c# - Entity Framework 代码优先 : how to add more props on model and update database?

mysql - 如何将流程添加为数据库中的关系,例如捐赠记录等

php - Laravel 4 重复数据库条目

php - Laravel 的 array_sort 助手 DESC e ASC

jquery - 从外部 Javascript 文件访问 ASP.NET MVC 模型数据

php - Laravel 4 - 如何插入多个模型?

php - 使用 php 变量来操作 html 的标题和正文的 Id (有人这样做吗?)

php - 如何在 Laravel 5.2 中更新用户表

javascript - AJAX 调用不会取代 HTML

javascript - 当我在 mysql 中存储 JavaScript 变量时,它如何链接到当前用户的 ID?