laravel 5.1 MorphToMany&;MorphByMany与自定义字段


laravel 5.1 MorphToMany & MorphByMany with custom fields

我在表中有自定义字段,希望与其他表一起使用MorpTohmany。如何使用自定义字段。

在下面的模型中(salepurchaserequest_to供应商模型外键,其中selpurchase_typesalepurchase_id将包含其他模型关系,如仓库、商店等

销售购买型号

+----+------------+-------------------+-----------------+-------------+
| id | request_to | salepurchase_type | salepurchase_id | total_items |
+----+------------+-------------------+-----------------+-------------+
|  1 |          1 | Warehouse         |               1 |          10 |
|  2 |          1 | Warehouse         |               1 |          10 |
|  3 |          1 | Warehouse         |               1 |          11 |
|  4 |          1 | Shop              |               7 |          15 |
|  5 |          1 | Shop              |               5 |          19 |
+----+------------+-------------------+-----------------+-------------+

仓库型号

+----+-------------+
| id | name        |
+----+-------------+
|  1 | warehosue 1 |
|  2 | warehosue 2 |

商店型号

+----+-------------+
| id | name        |
+----+-------------+
|  5 | Shop 1      |
|  7 | Shop 2      |

供应商型号

+----+--------------------------+
| id | qualified_person         |
+----+--------------------------+
|  1 | Marks                    |
|  2 | test                     |
+----+--------------------------+

在您的模型中,只需添加关系:

<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class SalePurchase extends Model
{
    /**
     * Get all of the owning salepurchase models.
     */
    public function salepurchase()
    {
        return $this->morphTo();
    }
   public function supplier()
   {
     return $this->belongsTo('App'Supplier','request_to','id');
   }
}

然后在其他型号中:

class Shop extends Model
{
    /**
     * Get all of the Shop's purchases.
     */
    public function salepurchases()
    {
        return $this->morphMany('App'SalePurchase', 'salepurchase');
    }
}

在您的供应商模型中:

<?php
namespace App;
use Illuminate'Database'Eloquent'Model;
class Supplier extends Model
{
    public function salepurchases()
    {
      return $this->hasMany('App'SalePurchases');
    }
}

我认为这里不需要MorphedByMany。由于SalePurchases表包含Morphed字段。