[英]How to create a new public method in a model?
我开始使用Laravel 4,我希望创建一个注册功能。
在这个功能中,我希望有一个类似的方法
User::is_active()
所以我可以检查数据库中是否存在confirmation_token。
在我的用户模型中,我正在创建:
public static function is_active(){
return empty($this->confirmation_token);
}
显然,我不能在静态方法中使用$ this。 但是我如何使用User::is_active()
语句?
在您的情况下,您不应该使用静态方法。 在OOP中,您希望在概念上不属于某个实例,或者您不需要访问实例成员时使用静态方法。
说,你应该使用实例方法(没有static关键字):
public function is_active()
{
return empty($this->confirmation_token);
}
然后,您将调用该方法执行以下操作:
$user = User::first(); // or any logic to find a user.
$active = $user->is_active();
您需要访问实例成员的事实: $this->confirmation_token
清楚地表明您不需要静态方法,而是实例方法。
快乐的编码!
在我看来,你似乎想要设置一个会话。 但是,请勿使用令牌来检查用户。 如果您使用内置令牌,它将始终返回true,因为即使刚刚访问该网站的用户也设置了该令牌。 你很可能想要设置像用户名一样的东西
Session::put('username', 'test');
然后你可以检查一个活跃的用户
Session::get('username');
我建议您查看http://laravel.com/docs/security ,因为根据您的应用程序将保留的信息,您很可能希望在rode上实现更强大的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.