【问题标题】:Laravel 5.4 Relationship hasMany not workingLaravel 5.4 关系有很多不起作用
【发布时间】:2018-12-09 05:24:59
【问题描述】:

我有 2 个模型文章和艺术类别

我使用 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_article 表下是 pjt_categories_article

结果

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

关系不起作用

【问题讨论】:

  • 我猜应该使用with。默认情况下它不会加载关系。

标签: php database laravel relationship


【解决方案1】:

你应该在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');
    }
}

现在用ArtCategories 获取文章:

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

由于 laravel 约定 Article() 方法应该是 articles()ArtCategories() 应该是 artCategory()

【讨论】:

    猜你喜欢
    • 2018-11-25
    • 2019-07-22
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2023-03-09
    • 2014-07-10
    • 2021-12-08
    相关资源
    最近更新 更多