我在一张桌子上有一个自我关系船 1:1。这是我的模型:
class CcieActivity extends Model
{
protected $table = 'ccieActivities';
public $timestamps = false;
protected $with = ['project','attivitaSost'];
protected $casts = [
'project_id' => 'int'
];
protected $fillable = [
'project_id',
'catAttivita',
'nomeAttivita',
'modalitaRealizzazionePrevista',
'descrizione',
'dataInizioPrevista',
'dataFinePrevista',
'numNegoziAderentiPrevisti',
'numAziendeCoinvoltePreviste',
'numInfluencerPartecipantiPrevisti',
'numBuyerPrevistiB2B',
'budgetTotalePrevisto',
'attivitaSost',
'attivitaSpostata' ];
public function project()
{
return $this->belongsTo(Project::class);
}
public function ccie_activity_monitorings()
{
return $this->hasMany(CcieActivityMonitoring::class, 'ccieActivity_id');
}
public function attOrigSost(){
return $this->belongsTo(CcieActivity::class);
}
public function attOrigSpost(){
return $this->belongsTo(CcieActivity::class);
}
public function attivitaSosti()
{
return $this->hasOne(CcieActivity::class, 'attivitaSost','id');
}
public function attivitaSpostata(){
return $this->hasOne(CcieActivity::class, 'attivitaSpostata','id');
}
}
“attivitaSost”和“attivitaSpostata”是定义双重自我关系的2个外键,可选(可以为空),并且相关函数属于和hasOne,它们是否正确?
我通过 api 资源公开数据,我的 api 资源是:
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
use App\Http\Resources\ProjectResource;
use App\Http\Resources\CciActivityResource;
class CcieActivityResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
return [
'id' => $this->id,
'project' =>new ProjectResource($this->project) , //id, nomeEnte, name, email, ruolo
'catAttivita' => $this->catAttivita,
'nomeAttivita' => $this->nomeAttivita,
'descrizione' => $this->descrizione,
'dataInizioPrevista' => $this->dataInizioPrevista,
'dataFinePrevista'=> $this->dataFinePrevista,
'numNegoziAderentiPrevisti'=> $this->numNegoziAderentiPrevisti,
'numAziendeCoinvoltePreviste'=> $this->numAziendeCoinvoltePreviste,
'numInfluencerPartecipantiPrevisti'=> $this->numInfluencerPartecipantiPrevisti,
'numBuyerPrevistiB2B'=> $this->numBuyerPrevistiB2B,
'budgetTotalePrevisto'=> $this->budgetTotalePrevisto,
'attivitaSostitutiva'=> $this->attivitaSost,
'attivitaSpostata'=> $this->attivitaSostitutiva,
'modalitaRealizzazionePrevista'=> $this->modalitaRealizzazionePrevista,
'attivitaSpostata' => new CcieActivityResource($this->attivitaSosti)
];
}
}
最后一行总是空的,我错了什么?是否可以在同一个类中调用自己?或者我对关系做了一些错误,谢谢!