laravel with嵌套的渴求式加载

前日在经过须要表A查询地方类型表B,然后通过表B的场馆类型id去询问表C场面类型名的时候蒙受了三个小的难点。

laravel 嵌套的渴求式加载,laravel嵌套渴求

前些天在经过供给表A查询场所类型表B,然后通过表B的场合类型id去询问表C地方类型名的时候碰着了1个小的标题。

需求表A的字段:id、user_id 、name等等;

中间表B的字段:id、appeal_id、field_type_id;

场面类型表C的字段:id、display_name等等;

Appeal模型中:

public function appeal_field_type() {
   return $this->hasMany('App\Models\AppealFieldType');
}

public function field_type() {
    return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
}

Appeal控制器中;

$result = Appeal::select('id','name')
    ->where('id',$id)
    ->with('appeal_field_type.field_type')
    ->first();
以上都是看了laravel学院的嵌套的渴求式加载,然后按照他上面说的方法,模仿着写了一下,结果这个方法一直报错,报“field_type”方法不存在,一开始琢磨不透,看了一遍右边appeal模型,检查过单词有没有写错,有没有引入模型,等等,都检查过了,我就觉得不对啊,我就是严格按照学院上写的嵌套的渴求式加载,但是就是不对。后来,我想,既然appeal_field_type这个方法是通过关联模型访问的,那么是不是他还是要通过AppealFieldType这个模型,去访问field_type这个方法,果然,我把fiel_type方法写到AppealFielType模型中,再去访问的时候,成功~
最终成功的结果:
Appeal模型中:

public function appeal_field_type() {
   return $this->hasMany('App\Models\AppealFieldType');
}

AppealFieldType模型中:

public function field_type() {
    return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
}

Appeal调控器中:

$result = Appeal::select('id','name')
    ->where('id',$id)
    ->with('appeal_field_type.field_type')
    ->first();

主要原因是学院上这一块讲的不是特别清楚,不知道后面的那个方法应该写在哪个控制器中,所以出现了这么一个困扰萌新的问题~

http://www.bkjia.com/Windowsjc/1218767.htmlwww.bkjia.comtruehttp://www.bkjia.com/Windowsjc/1218767.htmlTechArticlelaravel 嵌套的渴求式加载,laravel嵌套渴求
明天在通过须求表A查询场合类型表B,然后经过表B的场地类型id去询问表C场合类型名的时候遭遇了…

需求表A的字段:id、user_id 、name等等;

中间表B的字段:id、appeal_id、field_type_id;

场馆类型表C的字段:id、display_name等等;

Appeal模型中:

public function appeal_field_type() {
   return $this->hasMany('App\Models\AppealFieldType');
}

public function field_type() {
    return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
}

Appeal控制器中;

$result = Appeal::select('id','name')
    ->where('id',$id)
    ->with('appeal_field_type.field_type')
    ->first();
以上都是看了laravel学院的嵌套的渴求式加载,然后按照他上面说的方法,模仿着写了一下,结果这个方法一直报错,报“field_type”方法不存在,一开始琢磨不透,看了一遍右边appeal模型,检查过单词有没有写错,有没有引入模型,等等,都检查过了,我就觉得不对啊,我就是严格按照学院上写的嵌套的渴求式加载,但是就是不对。后来,我想,既然appeal_field_type这个方法是通过关联模型访问的,那么是不是他还是要通过AppealFieldType这个模型,去访问field_type这个方法,果然,我把fiel_type方法写到AppealFielType模型中,再去访问的时候,成功~
最终成功的结果:
Appeal模型中:

public function appeal_field_type() {
   return $this->hasMany('App\Models\AppealFieldType');
}

AppealFieldType模型中:

public function field_type() {
    return $this->belongsTo('App\Models\FieldType')->select('id','display_name');
}

Appeal调整器中:

$result = Appeal::select('id','name')
    ->where('id',$id)
    ->with('appeal_field_type.field_type')
    ->first();

主要原因是学院上这一块讲的不是特别清楚,不知道后面的那个方法应该写在哪个控制器中,所以出现了这么一个困扰萌新的问题~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图