`Model::` 和 `$model->` 还是有区别啊
之前问过一个问题Topic:: 和 $topic-> 有区别么?
当时的代码是这样的,两种方式调用都是正常的
public function index(Request $request, Topic $topic)
{
$topics = $topic->withOrder($request->order)->paginate(20);
return view('topics.index', compact('topics'));
}
public function index(Request $request)
{
$topics = Topic::withOrder($request->order)->paginate(10);
return view('topics.index', compact('topics'));
}
因为我习惯了和实例无关的方法不用实例去调用,所以这次在活跃用户中也用了一样的写法却不好使了
public function index(Request $request)
{
$topics = Topic::withOrder($request->order)->paginate(10);
$active_users = User::getActiveUsers();
return view('topics.index', compact('topics'));
}
运行报错
Non-static method App\Models\User::getActiveUsers() should not be called statically
必须写成教程那样$user->getActiveUsers()
,通过实例对象去调用方法
public function index(Request $request, User $user)
{
$topics = Topic::withOrder($request->order)->paginate(10);
$active_users = $user->getActiveUsers();
return view('topics.index', compact('topics'));
}
分享到这里记录一下,后面回过头再来了解其中细节:
- php 中的静态方法到底是怎样的?
Topic::withOrder()
和User::getActiveUsers()
有什么不同?- 如何在不使用实例的情况下调用
getActiveUsers
方法?
如果有朋友对这个话题感兴趣 欢迎评论交流
推荐文章: