首页 > 解决方案 > 在 PHP/Laravel 中,“Model::class”的正确术语是什么,给定 `return $this->belongsTo(Model::class);`

问题描述

在此示例代码中:

public function user()
{
    return $this->belongsTo(User::class);
}

public function sandwich()
{
    return $this->belongsTo(Sandwich::class);
}

我想知道什么User::class叫,因为你也可以这样写上面的例子:

public function user()
{
    return $this->belongsTo(\App\User);
}

public function sandwich()
{
    return $this->belongsTo(\App\Sandwich);
}

所以我喜欢 Laravel 在你使用语法糖时“只知道”模型在哪里,但它叫什么?我想阅读一些有关它的文档,以便更好地了解幕后发生的事情。

它以某种方式提醒我“路由模型绑定”,所以我想要的答案是某个地方的相关文档页面的链接,或者我可以通过谷歌了解那里到底发生了什么的术语。

标签: phplaravel-5

解决方案


::class语法是类名解析。此语法返回完全限定类名的字符串表示形式,包括其他省略的任何命名空间信息。

此功能的几个好处是 1. 不需要显式指定类的完全限定名称空间,以及 2. 能够将完全限定名称空间作为字符串传递,同时允许 IDE 在重构时定位类名称或搜索参考。


推荐阅读