Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何创建一个Laravel多态关系,其中每种类型具有不同的多样性级别_Php_Laravel_Eloquent_Polymorphism_Relationship - Fatal编程技术网

Php 如何创建一个Laravel多态关系,其中每种类型具有不同的多样性级别

Php 如何创建一个Laravel多态关系,其中每种类型具有不同的多样性级别,php,laravel,eloquent,polymorphism,relationship,Php,Laravel,Eloquent,Polymorphism,Relationship,好的,我试着在Laravel中创建一个多态关系,它有四种不同的类型。我的问题是,其中两个级别是一对多,另外两个级别是多对多。以下是我目前掌握的情况: class Holiday extends AbstractModel { protected $table = 'holidays'; protected $fillable = [ 'scope_id', 'scope_type', 'main_date', 'alt_date', 'comp_date', 'name', 'di

好的,我试着在Laravel中创建一个多态关系,它有四种不同的类型。我的问题是,其中两个级别是一对多,另外两个级别是多对多。以下是我目前掌握的情况:

class Holiday extends AbstractModel {
  protected $table = 'holidays';

  protected $fillable = [
  'scope_id', 'scope_type', 'main_date', 'alt_date', 'comp_date', 'name', 'disabled'
  ];  

  public function scope() {
    return $this->morphTo();
  }
}

class Country extends AbstractModel {
  protected $table = 'countries';

  protected $fillable = ['name', 'iso_code', 'disabled'];

  public function holidays() {
    return $this->morphMany("App\holidays", "scope");
  }
}

class CountrySubdivision extends AbstractModel {
  protected $table = 'countries_subdivisions';

  protected $fillable = ['name', 'iso_code', 'countries_id', 'disabled'];  

  public function holidays() {
    return $this->morphMany("App\holidays", "scope");
  }
}
这对于前两个级别(一对多关系)是有好处的。然而,我的问题在于最后两个层次,这两个层次是多对多的。以下是我的模型:

class Site extends AbstractModel {

  protected $fillable = ['name', 'code', 'division', 'absence', 'unpaid'];

  public function holidays() {
    return $this->morphToMany("App\Holiday", "scope");
  }
}

class Employee extends AbstractModel {

  protected $fillable = [
    'name', 'code', 'division', 'absence', 'unpaid'
  ];

  public function holidays() {
    return $this->morphToMany("App\Holiday", "scope");
  }
}
我的问题是,当定义关系的倒数时。
morphTo
方法用于一对多关系。但是,对于多对多,我需要使用
morphedByMany()
方法。但是,我不知道如何对同一关系使用两个不同的限定符


有人知道如何做到这一点吗?

我想你忽略了这样一个事实:你需要为
站点
员工
建立独立的
morphedbyman()
关系。
scope()
方法不会干扰
morphedbyman()
调用吗?我不明白为什么。你试过了吗?