首页 > 解决方案 > 在 Laravel Eloquent 中传递参数的最佳方法是什么:关系(方法),以及它有什么区别

问题描述

其实我不知道这两种方法有什么区别

Laravel 官方文档使用以下方法来声明关系

class User extends Model
{
    public function phone()
    {
        return $this->hasOne('App\Phone'); // HERE (App\Phone) Parameter 
    }
}

并且大多数教程和专家(甚至在 Laracon 中)都使用以下方法。

class User extends Model
{
    public function phone()
    {
        return $this->hasOne(Phone::class); // HERE (Phone::class) Parameter 
    }
}

简而言之,两者有什么区别,哪个方便。

return $this->hasOne(Phone::class); // Method one
/// VS 
return $this->hasOne('App\Phone'); // Method Two

标签: phplaraveleloquent

解决方案


它们都是相同的,但是Phone::class是新的语法
让我们假设您想将您的Phone类移动到另一个文件夹,您必须找到每个文件夹'App\Phone'并将其重命名,New\Directory\Phone但是当您使用时,Phone::class您不必担心这一点。


推荐阅读