【发布时间】:2017-03-16 00:30:56
【问题描述】:
我是 PHP 和 Laravel 的新手,所以也许我做错了什么。我正在关注 Jeffrey Way 的 Laracasts 教程,他创建了一个“查询范围”方法。
当我在我的控制器中使用它时,它说它找不到它。
在我的任务模型中,我有:
public static function scopeCompleted( Builder $query )
{
return $query->where( 'completed', 1 );
}
在我的控制器中,我有:
$completed_tasks = Task::completed()->get();
但是completed 被 PhpStorm 高亮显示并出现错误:
“在 App\Task 中找不到方法‘完成’”
我知道它正在寻找一个名为 scopeCompleted 的方法,但这不是您在控制器中调用查询范围方法的方式。
是我做错了什么还是这只是 PhpStorm 中的一个缺陷?
仅供参考:代码运行良好。
【问题讨论】:
-
“我做错了什么还是这只是 PhpStorm 中的一个缺陷?” 这里没有 PhpStorm 缺陷.. 除非你计算 IDE 不知道特定的框架( Laravel)将他隐藏的魔法作为一个缺陷。您要么使用已经提到的github.com/barryvdh/laravel-ide-helper,要么(如果由于某种原因在这里无法提供帮助)使用 PHPDoc 注释来声明此类方法(例如,通过
@method标签 -- phpdoc.org/docs/latest/references/phpdoc/tags/method.html)
标签: php laravel laravel-5 ide phpstorm