【发布时间】:2019-01-13 07:28:19
【问题描述】:
我的模型 Dispatch 有一个字段 invoice_id。 这是一个外键,所以我可以使用以下代码获取发票详细信息:
protected $fillable = [
'id',
'truck_no',
'driver_name',
'driver_phone',
'gps_details',
'invoice_id',
];
public function invoice(){
return $this->belongsTo('App\Invoice')->select('id','invoice_no','permit_id');
}
现在我想从 invoice() 中获取值 permit_id,以便我可以使用它来获取许可证的详细信息。
permit_id = Permit 模型的 ID
所以我使用下面的代码来获取许可数据。
public function permit(){
return $this->hasOne('App\Permit','id',$this->invoice()->permit_id);
}
更新:
我的发票模型有:
class Invoice extends Model
{
protected $fillable = [
'id',
'invoice_no',
'invoice_date',
'permit_id',
];
public function permit(){
return $this->hasOne('App\Permit', 'id', 'permit_id');
}
}
我的许可模型有:
class Permit extends Model
{
protected $fillable = [
'permit_type',
'permit_no',
'application_no',
'supply_unit',
'supply_unit_id' ,
];
public function supplyunit(){
return $this->hasOne('App\SupplyUnit','id','supply_unit_id');
}
}
根据建议,我在调度模型中添加了以下代码:
class Dispatch extends Model
{
protected $fillable = [
'id',
'truck_no',
'driver_name',
'driver_phone',
'gps_details',
'invoice_id',
];
public function invoice(){
return $this->hasOne('App\Invoice','id','invoice_id');
}
public function permit(){
return $this->hasOne('App\Permit','id','permit_id');
}
}
但它不起作用。我应该怎么做才能实现上述目标?有没有其他解决方案请建议。
【问题讨论】:
标签: php laravel model eloquent