Laravel 5.8查询以获取多态关系的计数

问题描述

我有以下表格,其中一页包含许多可容纳内容,每个可容纳内容都有行或问题:

// Page model
class Page extends Model
{
   protected $fillable = ['title'];
 
   public function containables() {
     return $this->morphMany(Containable::class,'containable');
   }
}

Example pages table data: 

| id | title  |
|----|--------|
| 1  | Page 1 |
// Containable model
class Containable extends Model
{
   protected $table = 'containables';

   protected $fillable = ['containable_id','containable_type'];

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

   public function sequences() {
      return $this->hasMany(ContainableSequence::class,'containable_id','id');
}

Example containables table data:
 
| id | containable_id | containable_type |
|----|----------------|------------------|
| 2  | 1              | App\Page         |
| 3  | 1              | App\Page         |
// ContainableSequence model
class ContainableSequence extends Model
{
   protected $table = 'containable_sequence';

   protected $fillable = ['containable_id','sequencable_id','sequencable_type','order'];

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

Example containable_sequence table data:

| id | containable_id | sequencable_type | sequencable_id | order |
|----|----------------|------------------|----------------|-------|
| 4  | 2              | App\Line         | 6              | 1     |
| 5  | 2              | App\Question     | 8              | 2     |
| 6  | 3              | App\Question     | 9              | 1     |
| 7  | 3              | App\Line         | 7              | 2     |
// Line model
class Line extends Model
{
  protected $table = 'lines';

  protected $fillable = ['name'];
}

Example Lines table data:

| id | name   |
|----|--------|
| 6  | line 1 |
| 7  | line 2 |
// Question model
class Question extends Model
{
  protected $table = 'questions';

  protected $fillable = ['name','marks'];
}

Example Questions table data:
| id | name       | marks |
|----|------------|-------|
| 8  | Question 1 | 10    |
| 9  | Question 2 | 15    |

我正在尝试使用多态关联对表进行联接,以获取链接到页面的行数和问题数。

从页面开始,如何用雄辩的语言获得相关行和问题的计数?谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)