laravel 定义模型的局部查询作用域方法没有PhpStorm没有代码提示

使用 PhpStorm 作为开发编辑器。在 laravel 框架定义模型的局部查询作用域方法 scopeWithOrder(),调用时没有代码提示。
请问怎么才能让 PhpStorm 提示模型定义的局部查询作用域方法?
下面是我的示例代码:
Topic模型

class Topic extends Model
{
    use Illuminate\Database\Eloquent\Factories\HasFactory;
    use Illuminate\Database\Query\Builder;
    /**
     * @param Builder $query
     * @param string $sort
     * @return Builder
     */
    public function scopeWithOrder($query, $sort = 'asc')
    {
        $query->orderBy('updated_at', $sort);
    }
}

Topic控制器

class TopicsController extends Controller
{
    ...
    public function index(Topic $topic, Request $request)
   {
           $topics = $topic->with(['user', 'category'])->withOrder($request->sort)->paginate(8);
        return view('topics.index', compact('topics'));
  }
    ...
}

调用 withOrder 局部查询作用域方法时没有提示,并且调用之后的所有链式方法也都失去了提示,这样开发很是不方便。

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10

加个注释

use \Illuminate\Database\Eloquent\Builder;

/**
 * @method Builder withOrder(Builder $query, string $sort = 'asc')
 */
class Topic extends Model
{
    // ...
}
11个月前 评论
FXH_ (楼主) 11个月前
lddtime (作者) 11个月前
11个月前 评论
FXH_ (楼主) 11个月前
sanders

我放弃了,感觉当用到 Builder 的时候就没有太好的方案了。

11个月前 评论
lddtime 11个月前
mowangjuanzi 11个月前

可以换成$topics = $topic->with(['user', 'category'])->scopes([withOrder => $request->sort])->paginate(8);

11个月前 评论
nff93

此时我又要推荐: laravel-idea.com

11个月前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!