0

我在一张桌子上有一个自我关系船 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)

        ];
    }
}

最后一行总是空的,我错了什么?是否可以在同一个类中调用自己?或者我对关系做了一些错误,谢谢!

4

0 回答 0