首页 文章

如何在laravel eloquent中 Build 一个Model类与另一个模型类文件夹的关系?

提问于
浏览
3

文件夹结构:

app
|-Admin.php
|-Admin
     |
     |-Product.php





    Admin.php
    --------------------------------------------------------
    namespace App;

    use Illuminate\Foundation\Auth\User as Authenticatable;

    class Admin extends Authenticatable
    {
        public function erp()
        {
            return $this->belongsToMany(Admin\Product::class);
        }
    }
    -----------------------------------------------------------



    Product.php
    -----------------------------------------------------------
    namespace App\Admin;

    use Illuminate\Database\Eloquent\Model;

    class Product extends Model
    {

        protected $primaryKey = 'productcode';
        public $incrementing = false;

        public function updatedBy()
        {
            return $this->belongsTo(Admin::class);
        }
    }

-----------------------------------------------------------

但得到一个错误类'Admin :: class'找不到任何解决方案?

2 回答

  • 4

    使用正确的命名空间:

    管理模式:

    namespace App;
    
    use Illuminate\Foundation\Auth\User as Authenticatable;
    use App\Admin\Product;
    
    class Admin extends Authenticatable
    {
        public function erp()
        {
            return $this->belongsToMany(Product::class);
        }
    }
    

    产品型号:

    namespace App\Admin;
    
    use Illuminate\Database\Eloquent\Model;
    use App\Admin;
    
    class Product extends Model
    {
    
        protected $primaryKey = 'productcode';
        public $incrementing = false;
    
        public function updatedBy()
        {
            return $this->belongsTo(Admin::class);
        }
    }
    

    或者将模型的命名空间添加为字符串,例如 App\Admin

  • 2

    请看你的名字空间

    Product.php
    -----------------------------------------------------------
    namespace App\Admin;
    

    所以,当你打电话给 Admin::class 时,这意味着 App\Admin\Admin::class 所以请改变你的关系 .

    class Product extends Model
    {
    
        protected $primaryKey = 'productcode';
        public $incrementing = false;
    
        public function updatedBy()
        {
            return $this->belongsTo('App\Admin');
        }
    }
    

相关问题