Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在laravel中查询相关模型中tabel的所有内容_Laravel - Fatal编程技术网

在laravel中查询相关模型中tabel的所有内容

在laravel中查询相关模型中tabel的所有内容,laravel,Laravel,假设我们在Laravel中有一个模型名“Article”,并希望查询检索最新文章,那么一种方法是在“Article”模型中定义一个方法,如下所示: public function newArticle() { return static::where('created_at', '>', Carbon::subMonths(1)); } 问题是,我们为什么要使用 静态:: 在上面的代码中 可以使用吗 $this或self:: 而不是 “静态::” 提前感谢,您可以,但没有兴趣,

假设我们在Laravel中有一个模型名“Article”,并希望查询检索最新文章,那么一种方法是在“Article”模型中定义一个方法,如下所示:

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());
}

谢谢您的帮助。