如何修复“试图获取非对象的属性”

时间:2019-07-08 09:31:57

标签: php laravel

请帮助检查代码以查看哪里有错误,因为我不是编码人员,而只是使用其他开发人员的应用程序

            <div class="bs-example widget-shadow table-responsive" data-example-id="hoverable-table"> 
                <table class="table table-hover"> 
                    <thead> 
                        <tr> 
                            <th>ID</th> 
                            <th>Client name</th>
                            <th>Amount</th>
                            <th>Payment mode</th>
                            <th>Receiver's email</th>
                            <th>Status</th> 
                            <th>Date created</th>
                            <th>Option</th>
                        </tr> 
                    </thead> 
                    <tbody> 
                        @foreach($withdrawals as $deposit)
                        <tr> 
                            <th scope="row">{{$deposit->id}}</th>
                            <td>{{$deposit->duser->name}}</td>
                             <td>{{$deposit->amount}}</td> 
                             <td>{{$deposit->payment_mode}}</td> 
                             <td>{{$deposit->duser->email}}</td> 
                             <td>{{$deposit->status}}</td> 
                             <td>{{$deposit->created_at}}</td> 
                             <td> <a class="btn btn-default" href="{{ url('dashboard/pwithdrawal') }}/{{$deposit->id}}">Process</a></td> 
                        </tr> 
                        @endforeach

1 个答案:

答案 0 :(得分:1)

问题出在{{$deposit->duser->name}}{$deposit->duser->email}}中。每次提款必须具有有效的用户ID。该用户ID将与用户表匹配,并且该用户的名称和电子邮件将显示在刀片​​中。

这是怎么回事,一个或多个$ deposit具有无效的用户ID。因此,刀片正在尝试在表中搜索以获取名称和电子邮件。但它找不到。因此,从本质上讲,它试图获取空对象的名称值并使应用程序崩溃。

您可以尝试使用以下代码检查duser是否为空值

@foreach($withdrawals as $deposit)

    @if(!is_null($deposit->duser))

     <tr> 
      <th scope="row">{{$deposit->id}}</th>
      <td>{{$deposit->duser->name}}</td>
      <td>{{$deposit->amount}}</td> 
      <td>{{$deposit->payment_mode}}</td> 
      <td>{{$deposit->duser->email}}</td> 
      <td>{{$deposit->status}}</td> 
      <td>{{$deposit->created_at}}</td> 
      <td> <a class="btn btn-default" href="{{ url('dashboard/pwithdrawal') }}/{{$deposit->id}}">Process</a></td> 
                        </tr> 

    @endif
@endforeach