如何在不同的文件夹中建立关系laravel?

时间:2018-08-06 04:33:27

标签: laravel models laravel-5.6 relation

我的用户模型如下:

namespace App\Models\Auth;
...
class User extends Authenticatable
{
    ...
    public function vendor()
    {
        return $this->belongsTo(Vendor::class, 'vendor_id', 'id');
    }
}

我的供应商模型如下:

namespace App\Models;
...
class Vendor extends Model
{
    ...
    public function users() 
    {
        return $this->hasMany(User::class, 'id', 'vendor_id');
    }
}

如果该关系运行,则存在这样的错误:

Class 'App\Models\Auth\Vendor' not found 

似乎发生了错误,因为供应商模型不在auth文件夹中

如何在不将供应商模型移至auth文件夹的情况下解决该错误?

2 个答案:

答案 0 :(得分:1)

简单来说,您需要将Vendor类导入到User类中。

namespace App\Models\Auth;
use App\Models\Vendor; //code to be added
...
class User extends Authenticatable
{
    ...
    public function vendor()
    {
        return $this->belongsTo(Vendor::class, 'vendor_id', 'id');
    }
}

答案 1 :(得分:1)

可以肯定是因为您没有将Vendor类显式加载到User文件中。

添加到您的用户文件

use App\Models\Vendor;