【问题标题】:laravel muti lavel associationlaravel 多级关联
【发布时间】: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';  
}

【问题讨论】:

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

标签: laravel associations has-many belongs-to


【解决方案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。

【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2022-01-01
    • 2017-05-06
    相关资源
    最近更新 更多