我在表中有自定义字段,希望与其他表一起使用MorpTohmany。如何使用自定义字段。
在下面的模型中(salepurchase)request_to是供应商模型外键,其中selpurchase_type和salepurchase_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字段。