0

所以,我的模型中有很多这样的东西:

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 等方法使用其他方法吗?

谢谢!

4

2 回答 2

0

尝试static在您的模型中创建该方法:

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

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

于 2013-09-23T11:29:53.773 回答
0

为了能够根据需要以静态方式访问方法,您需要将方法定义为静态:

public static function can_reply($user)
{
    if ($user->banned == 0) return 1;
    return 0;
}
于 2013-09-23T11:30:32.573 回答