2013-09-23 36 views
0

所以,我有很多这样的东西在我的模型:Laravel 3和静态?

public function can_reply($user) 
{ 
if($user->banned == 0) return 1; 
return 0; 
} 

当我想在我的模型使用它们,我要使用的东西,如:

$post = new Post; 
if($post->can_reply($user)) 
{ 
    //do something 
} 

为什么我我不能使用这个吗?:

if(Post::can_reply($user)) 

它看起来更好和东西。 我做错了什么?我应该使用别的方法,如can_reply,parse_text,is_banned?

谢谢!

回答

0

尝试使该方法static在你的模型:

public static function can_reply($user) 
{ 
if($user->banned == 0) return 1; 
return 0; 
} 

现在你可以使用它像if(Post::can_reply($user)) { /*do somethig*/ }

0

为了能够以静态方式来访问的方法,如你所愿,你需要定义该方法为静态:

public static function can_reply($user) 
{ 
    if ($user->banned == 0) return 1; 
    return 0; 
}