Ron*_*nit 3 php namespaces eloquent laravel-5
return $this->belongsTo(User::class);
Run Code Online (Sandbox Code Playgroud)
与
return $this->belongsTo(App\User);
Run Code Online (Sandbox Code Playgroud)
上面两个语句有什么区别?
实际上,您的第二个示例无效。它必须是一个字符串:
return $this->belongsTo('App\User');
Run Code Online (Sandbox Code Playgroud)
假设它是一个字符串,则这两个变体之间没有区别。
PHP 5.5的类解析(::class
)返回类()的完全限定名称{Namespace}\ClassName
。您将在第一个示例中使用它。但是在第二个示例中,您将App\User
手动传递类FQN(),而不使用类解析。
重要说明是use
,在可以对类使用类解析之前,应在上下文中使用类(如果没有,则在语句中使用该语句)。但是在第二种方法中,您不需要类可用,只需将FQN作为字符串传递即可。
对于上下文中可用的长类FQN,您宁愿使用类解析,而不是手动传递它。
use Illuminate\Database\Eloquent\Model;
echo Model::class;
// Outputs: Illuminate\Database\Eloquent\Model;
Run Code Online (Sandbox Code Playgroud)