Laravel - Попытка получить свойство is_approved для необъекта - PullRequest
0 голосов
/ 19 марта 2020

В моем Laravel -5.8 проекте у меня есть этот код

Контроллер

public function index()
{
    $userCompany = Auth::user()->company_id;
    $userEmployee = Auth::user()->employee_id;
    $identities = DB::table('appraisal_identity')->select('id')->where('company_id', $userCompany)->where('is_current', 1)->first();
    $currentstatus = AppraisalGoal::select('is_approved')->where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->first();


    $goals = AppraisalGoal::where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->get();

    $incompleteCount = $goals->filter(function($item) {
          return ($item->is_approved == 0 || $item->is_approved == 2);
      })->count();       
    return view('appraisal.appraisal_goals.index')->with(['goals' => $goals, 'incompleteCount' => $incompleteCount])->with('currentstatus', $currentstatus);
}

Просмотр

@foreach($goals as $key => $goal)

@if(in_array($goal->is_approved, [0, 2]))
   <a class="btn btn-xs btn-info" href="{{ route('appraisal.appraisal_goals.edit', ['id'=>$goal->id]) }}">
     Edit
   </a>
@endif

@ endforeach

    <div class="row no-print">
        <div class="col-12">
         @if ($incompleteCount)
                &nbsp;&nbsp;&nbsp;<a href ="{{ route('post.publish.all')}}" class="btn btn-primary float-left"><i class="fas fa-arrow-right"></i> Publish</a>               
         @endif                  
        </div>       
    </div>  

Чего я хочу добиться, так это того, чтобы при загрузке страницы кнопки «Редактировать» и «Publi *» 1024 * были видны только тогда, когда is_approved равно 0 или 2.

Вместо того, чтобы увидеть это, я получил эту ошибку:

Попытка получить свойство 'is_approved' необъекта

Как мне его разрешить?

Спасибо.

1 Ответ

0 голосов
/ 19 марта 2020

похоже, ваш запрос не возвращает никакого результата.

$goals = AppraisalGoal::where('employee_id', $userEmployee)->where('appraisal_identity_id', $identities->id)->get();

Вы можете поставить дополнительную проверку, чтобы избежать этой ошибки

if(count($goals)){
      $incompleteCount = $goals->filter(function($item) {
      return ($item->is_approved == 0 || $item->is_approved == 2);
  })->count();       

}
else {
  $incompleteCount = 0;
}
 return view('appraisal.appraisal_goals.index')->with(['goals' => 
 $goals, 'incompleteCount' => $incompleteCount])->with('currentstatus', $currentstatus);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...