laravel 多级关联

Posted

技术标签:

【中文标题】laravel 多级关联【英文标题】:laravel muti lavel association 【发布时间】:2016-06-17 12:19:35 【问题描述】:

我有 3 个表,这些表不符合 laravel

job_post Table
  job_post_id
  name

job_functional_area Table (has many with job_post table and belongsTo with functional_area) 
  job_functional_area_id
  job_post_id
  functional_area_id

functional_area
  functional_area_id
  name

现在我要获取job_post功能区

像这样的关系 job_post > job_functional_area > functional_area

在 cakephp 中,我们在 laravel 中使用包含我不知道。

我尝试过 Has Many Through,但在这种情况下它不起作用。请帮帮我

型号

class JobPost extends Model

     protected $table = 'job_post';
     protected $primaryKey = 'job_post_id';



class JobFunctionalArea extends Model 
     protected $table = 'job_functional_area';
     protected $primaryKey = 'job_functional_area_id';  



class FunctionalArea extends Model 
     protected $table = 'functional_area';
     protected $primaryKey = 'functional_area_id';  

【问题讨论】:

请发布您的模型、您的确切查询和您收到的错误。 如果你不想付出任何努力,你为什么指望别人帮助你? 对不起先生,我会发布这个 我已经发布了模型 【参考方案1】:

你的模型应该看起来像这样。

class JobPost extends Model 
        protected $table = 'job_post';
        protected $primaryKey = 'job_post_id';

        public function jobFunctionalAreas() 
            return $this->belongsToMany('App\JobFunctionalArea');
        


class JobFunctionalArea extends Model 
        protected $table = 'job_functional_area';
        protected $primaryKey = 'job_functional_area_id';

        public function jobPosts() 
            return $this->hasMany('App\JobPost');
        

        public function functionalArea() 
            return $this->belongsTo('App\FunctionalArea');
        



class FunctionalArea extends Model 
        protected $table = 'functional_area';
        protected $primaryKey = 'functional_area_id';

        public function jobFunctionalAreas() 
            return $this->hasMany('App\JobFunctionalArea');
        

您还可以在关系中添加自己的自定义 $primaryKey。

【讨论】:

以上是关于laravel 多级关联的主要内容,如果未能解决你的问题,请参考以下文章

获取多级相关记录 laravel

Laravel 多级关系

Laravel 多级分层用户系统

Laravel 多级菜单不起作用

如何使用 Laravel 创建数据库驱动的多级导航菜单

Laravel Yajra 数据表,列名的多级关系