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

How do I make relations laravel in different folders?

我的用户模型是这样的:

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 

好像是因为vendor模型不在auth文件夹中导致的错误

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

简单来说,您需要将供应商 class 导入用户 class。

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

很确定这是因为您没有明确地将 Vendor class 加载到 User 文件中。

添加到您的用户文件

use App\Models\Vendor;