【发布时间】:2017-12-27 01:47:33
【问题描述】:
我正在看 Laracasts: Laravel 5.4 from Scratch 系列,并且遇到了查询范围的概念。
在视频中,我们这样设置了一个类:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
public function scopeIncomplete($query)
{
return $query->where('completed', 0);
}
}
我的第一个问题:
为什么像这样的方法: public function scopeIncomplete($query) 这样调用:App\Task::incomplete() 和 :: 运算符?
那不是静态调用的非静态方法吗?
我的第二个问题:
$query 来自哪里?
据我所知,这是“现有”查询,但它的名称如下:App\Task::incomplete()->where('id', '>', 1)->get();
所以我不太确定这个变量是从哪里来的。
也许稍后会更深入地解释它,但我无法理解它是如何工作的。
【问题讨论】: