【发布时间】:2014-03-10 17:37:55
【问题描述】:
您好,我已经安装了 sentry2 包,并且我创建了一个通过用户名获取用户的功能,即使我有类似用于登录电子邮件的主列,但它给我一个错误。
所以我创建了我的模型 User 并使用 \Cartalyst\Sentry\Users\Eloquent\User 扩展它
然后我在这种情况下与另一个模型建立关系Player
所以关系看起来像这样:
用户模型
class User extends \Cartalyst\Sentry\Users\Eloquent\User implements UserInterface, RemindableInterface {
public function sport() {
return $this->hasOne('Core\Team\Player\Models\Player','player_id');
}
}
玩家模型
public function user() {
return $this->belongsTo('User','player_id');
}
然后这是通过用户名查找用户的功能给我一个错误:
调用未定义的方法 Illuminate\Database\Query\Builder::sport()
按用户名获取用户的功能
public function byUsername($username) {
$emptyModelInstance = $this->sentry->getUserProvider()->getEmptyUser();
$myUser = $emptyModelInstance->with('sport')->where('username', '=', $username)->first();
if ( is_null($myUser) ) {
return false;
} else {
return $myUser;
}
}
Ps:如果我删除 with() 方法效果很好
【问题讨论】:
-
你的问题本来可以措辞更清楚一点,但我认为不值得反对 +1 来让你重回盈利。 @downvoter - 您可能需要一些时间来解释您的反对意见,以便更具建设性
标签: laravel laravel-4 cartalyst-sentry