如何在不同的文件夹中建立关系 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;
我的用户模型是这样的:
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;