【问题标题】:property does not exist but relationship established财产不存在但关系建立
【发布时间】:2018-11-01 05:19:31
【问题描述】:

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

我的观点是:

@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->gestions->observations 上返回一个不存在的错误。 我似乎找不到它的来源,Gestion 和 Tickets 类之间的关系与 Tickets 和 Urgence 或 Tickets 和 Assistance 之间的关系一样。

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

你能帮帮我吗?

提前致谢!

【问题讨论】:

    标签: php mysql laravel class relationship


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      一张票有很多Gestion,所以$ticket-&gt;gestions实际上是一个对象数组/集合。您需要遍历它,或者只获取第一个:

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

      或者

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

      【讨论】:

      • 第一个:ErrorException (E_NOTICE) 未定义偏移量:1 第二个:ErrorException (E_ERROR) 试图获取非对象的属性“观察”(查看:C:\xampp\htdocs\rmstickets\resources \views\export\ticketsexcelferme.blade.php)
      • 有趣的偏移信息,但我确实注意到我打错了。应该是$gestion-&gt;observations
      • 第二个应该可以工作,但如果该票没有 gestions 可能会引发错误。因此,在尝试打印观察结果之前,您可能需要查看是否有任何 gestions。
      • 有没有办法可以在 之前使用 if 子句或其他内容来防止该错误?
      • 当然,用@if($ticket-&gt;gestions-&gt;count())
      猜你喜欢
      相关资源
      最近更新 更多
      热门标签