在laravel中查询相关模型中tabel的所有内容
假设我们在Laravel中有一个模型名“Article”,并希望查询检索最新文章,那么一种方法是在“Article”模型中定义一个方法,如下所示:在laravel中查询相关模型中tabel的所有内容,laravel,Laravel,假设我们在Laravel中有一个模型名“Article”,并希望查询检索最新文章,那么一种方法是在“Article”模型中定义一个方法,如下所示: public function newArticle() { return static::where('created_at', '>', Carbon::subMonths(1)); } 问题是,我们为什么要使用 静态:: 在上面的代码中 可以使用吗 $this或self:: 而不是 “静态::” 提前感谢,您可以,但没有兴趣,
public function newArticle()
{
return static::where('created_at', '>', Carbon::subMonths(1));
}
问题是,我们为什么要使用
静态::
在上面的代码中
可以使用吗
$this或self::
而不是
“静态::”
提前感谢,您可以,但没有兴趣,因为:
方法在where
类上不静态存在,因此它调用illighted\Database\Eloquent\Model
魔术方法,将调用委托给实例\u callStatic
/**
*处理对方法的动态静态方法调用。
*
*@param string$方法
*@param数组$parameters
*@返回混合
*/
公共静态函数\uuu callStatic($method,$parameters)
{
返回(新静态)->$方法(…$参数);
}
- 它在实例上调用
方法,但它也不存在,因此它调用where
\u调用
magic方法,该方法将
实例委托给它照亮\数据库\雄辩\构建器
/**
*处理对模型的动态方法调用。
*
*@param string$方法
*@param数组$parameters
*@返回混合
*/
公共函数调用($method,$parameters)
{
if(在数组中($method,['increment','decrement'])){
返回$this->$方法(…$参数);
}
返回$this->forwardCallTo($this->newQuery(),$method,$parameters);
}
/**
*获取模型表的新查询生成器。
*
*@return\illumb\Database\elount\Builder
*/
公共函数newQuery()
{
返回$this->registerGlobalScopes($this->newQueryWithoutScopes());
}
谢谢您的帮助。