代码之家  ›  专栏  ›  技术社区  ›  story ks

拉维尔5.4关系有很多不起作用

  •  0
  • story ks  · 技术社区  · 7 年前

    我有两个范文和艺术类别

    我使用belongsto()和hasmany()在两个模型之间建立了一对多关系。hasmany()关系工作得很好,但belongto()不工作。有人知道我在哪里犯了错误吗? 是的。

    代码模型

    class ArtCategories extends Model
    {
        protected $table = 'pjt_categories_article';
        protected $primaryKey = 'cate_id';
        protected $fillable = ['cate_id','categories'];
    
        public function Article(){
            return $this->hasMany(Article::class);
        }
    }
    class Article extends Model
    {
        protected $table = 'pjt_article';
        protected $primaryKey = 'article_id';
        protected $fillable = ['article_id','title','descriptions','username','cate_id','status','visit','reference'];
    
        public function ArtCategories(){
            return $this->belongsTo(ArtCategories::class,'cate_id');
        }
    
        public function admin(){
            return $this->belongsTo(Admin::class);
        }
    }
    

    这是数据库结构表上是PJT_文章,下表是PJT_类别文章 enter image description here

    结果

    $art = Article::findOrFail($article_id); $cate = ArtCategories::pluck('categories', 'cate_id'); dd($art);

    enter image description here

    关系不起作用

    1 回复  |  直到 7 年前
        1
  •  1
  •   Mahbub    7 年前

    您应该在关系方法中添加外键 ArtCategories

    class ArtCategories extends Model
    {
        protected $table = 'pjt_categories_article';
        protected $primaryKey = 'cate_id';
        protected $fillable = ['cate_id','categories'];
    
        public function article(){
             return $this->hasMany(Article::class, 'cate_id');
        }
    }
    

    现在用 艺术类别 作为:

    $art = Article::with('ArtCategories')->findOrFail($article_id);
    $cate = ArtCategories::pluck('categories', 'cate_id');
    dd($art);
    

    按照拉瓦尔惯例 Article() 方法应该是 articles() ArtCategories() 应该是 artCategory() 是的。

    推荐文章