财产不存在,但建立了关系

时间:2018-05-22 12:26:56

标签: php mysql laravel class relationship

我正在尝试从表中获取属性,但它告诉我它不存在:

我的观点是:

@foreach ($weeklyTicketsclosed as $ticket)
  @if($ticket->statut=='fermé')
    <tr>
    <td>{{ $ticket->societe}}</td>
    <td>{{ $ticket->intervenant}}</td>
    <td>{{ $ticket->assistance->level}}</td>
    <td>{{ $ticket->message}}</td>
    <td>{{ $ticket->urgence->niveau}}</td>
    <td>{{ $ticket->statut}}</td>
    <td>{{ $ticket->utilisateur->name}}</td>
    <td>{{ $ticket-> created_at}}</td>
    <td>{{ $ticket->gestions->observations}}</td>
    </tr>
    @endif
  @endforeach

我的门票类是:

class Tickets extends Model
{
    protected $table="tickets";
    protected $fillable=['message','utilisateur_id','urgence_id','societe','typeassistance','intervenant'];

    public function urgence()
    {
      return $this->belongsTo(\App\Urgence::class);
    }
    public function gestions()
    {
      return $this->hasMany(\App\Gestion::class, 'utilisateur_id');
    }
    public function assistance()
    {
      return $this->belongsTo(\App\assistance::class, 'typeassistance', 'id');
    }

我的Gestion课程是:

class Gestion extends Model
{
    protected $table="gestions";
    protected $fillable=['description','duree','ticket_id','utilisateur_id','observations'];

    public function tickets(){
      return $this->belongsTo(\App\Tickets::class);
    }
}

控制台在ticket-&gt; gestions-&gt;观察中返回不存在的错误。 我似乎无法找到它的来源,Gestion和Tickets类之间的关系与Tickets和Urgence或Tickets and Assistance之间的关系完全相同。

错误:此集合实例上不存在属性[观察]。 (查看:C:\ xampp \ htdocs \ rmstickets \ resources \ views \ export \ ticketsexcelferme.blade.php)

你能帮帮我吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

一张票有很多Gestions,所以$ticket->gestions实际上是一个对象的数组/集合。你想要迭代它,或者只是得到第一个:

<td>
  @foreach($ticket->gestions as $gestion)
  {{ $gestion->observations}}
  @endforeach
</td>

或者

<td>{{ $ticket->gestions->first()->observations}}</td>

答案 1 :(得分:0)

这与this question类似  对此的解决方案是告诉laravel哪些字段属于另一个模型。我希望这会有所帮助:)