变形关系中的哪里有变通方法?

时间:2018-06-10 20:06:07

标签: laravel polymorphism laravel-5.6

假设我得到了分页结果:

"data" => array:2 [
    0 => array:8 [
      "id" => 1
      "profile_id" => "1"
      "content_id" => "1"
      "content_type" => "App\Tweet"
      "content" => [some array]
    ]
    1 => array:8 [
      "id" => 2
      "profile_id" => "1"
      "content_id" => "1"
      "content_type" => "App\Food"
      "content" => null
    ]
  ]

除了 whereHas / has 之外还可以使用什么来移除数据[1]因为"内容"是 null

我问,因为WhereHas 无法使用morphTo ,请参阅此主题:#5429。提出的变通方法需要为每种类型都有明确的关系声明[不太好:(]。

我的内容是:

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

分页结果是这样的:

$profile->profileContents() //one Profile hasMany('App\ProfileContent')
     ->with('content')
     ->paginate(5);

如果您想知道为什么内容为空,那是因为GlobalScope。

0 个答案:

没有答案