php - Laravel - 试图获取非对象的属性'time_in'
问题描述
我有一个错误
试图获取非对象的属性“time_in”(查看:C:\xampp\htdocs\AttendanceEmployeeSystem\resources\views\admin\attendance.blade.php)
这是我的代码:
考勤控制器.php
<?php
namespace App\Http\Controllers;
use DateTime;
use App\User;
use App\Latetime;
use App\Attendance;
use Illuminate\Support\Facades\Hash;
use App\Http\Requests\AttendanceEmp;
class AttendanceController extends Controller
{
/**
* Display a listing of the attendance.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
return view('admin.attendance')->with(['attendances'=> Attendance::all()]);
}
/**
* Display a listing of the latetime.
*
* @return \Illuminate\Http\Response
*/
public function indexLatetime()
{
return view('admin.latetime')->with(['latetimes' => Latetime::all()]);
}
/**
* assign attendance to employee.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function assign(AttendanceEmp $request)
{
$request->validated();
if ($employee = User::whereEmail(request('email'))->first()){
if (Hash::check($request->pin_code, $employee->pin_code)) {
if (!Attendance::whereAttendance_date(date("Y-m-d"))->whereUser_id($employee->id)->first()){
$attendance = new Attendance;
$attendance->user_id = $employee->id;
$attendance->attendance_time = date("H:i:s");
$attendance->attendance_date = date("Y-m-d");
if (!($employee->schedules->first()->time_in >= $attendance->attendance_time)){
$attendance->status = 0;
AttendanceController::lateTime($employee);
};
$attendance->save();
}else{
return redirect()->route('attendance.login')->with('error', 'you assigned your attendance before');
}
} else {
return redirect()->route('attendance.login')->with('error', 'Failed to assign the attendance');
}
}
return redirect()->route('home')->with('success', 'Successful in assign the attendance');
}
/**
* assign late time for attendace .
*
* @return \Illuminate\Http\Response
*/
public static function lateTime(User $employee)
{
$current_t= new DateTime(date("H:i:s"));
$start_t= new DateTime($employee->schedules->first()->time_in);
$difference = $start_t->diff($current_t)->format('%H:%I:%S');
$latetime = new Latetime;
$latetime->user_id = $employee->id;
$latetime->duration = $difference;
$latetime->latetime_date = date("Y-m-d");
$latetime->save();
}
}
出勤.blade.php
@extends('layouts.main')
@section('content')
<!-- Content Wrapper. Contains page content -->
<div class="content-wrapper">
<!-- Content Header (Page header) -->
<section class="content-header">
<h1>
Attendance
</h1>
<ol class="breadcrumb">
<li><a href="#"><i class="fa fa-dashboard"></i> Home</a></li>
<li class="active">Attendance</li>
</ol>
</section>
<!-- Main content -->
<section class="content">
@include('includes.messages')
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header with-border">
<a href="/attendance/assign" data-toggle="modal" class="btn btn-primary btn-sm btn-flat"><i class="fa fa-plus"></i> New</a>
</div>
<div class="box-body">
<table id="example1" class="table table-bordered">
<thead>
<th>Date</th>
<th>Employee ID</th>
<th>Name</th>
<th>Attendance</th>
<th>Time In</th>
<th>Time Out</th>
</thead>
<tbody>
@foreach( $attendances as $attendance)
<tr>
<td>{{$attendance->attendance_date}}</td>
<td>{{$attendance->user_id}}</td>
<td>{{$attendance->user->name}}</td>
<td>{{$attendance->attendance_time}}
@if( $attendance->status == 1 )
<span class="label label-warning pull-right">On Time</span>
@else
<span class="label label-danger pull-right">Late</span>
@endif
</td>
<td>{{$attendance->user->schedules->first()->time_in}} </td>
<td>{{$attendance->user->schedules->first()->time_out}}</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</section>
</div>
@endsection
我不知道是因为时间格式还是其他原因,请帮忙!
解决方案
当你有这样的事情:
$attendance->user->schedules->first()->time_in
确保链条不会断裂。所以你必须检查是否$attendance->user
存在,然后检查是否$attendance->user->schedules
存在等等。
现在尝试这样的事情:
$attendance->user->schedules->first() ? $attendance->user->schedules->first()->time_in : 'Schedule not found';
推荐阅读
- python-3.x - DEPRECATION WARNING:
- javafx - Unexpected behavior of javafx Text after Scale transform
- r - How to reset reactiveValues?
- flutter - Flutter 制作糟糕的 Hero 动画
- php - Symfony - 值未插入数据库
- visual-studio-code - VSCode PHP Debug悬停在属性上
- jpa - 带有 IN 子句的 JPA CriteriaBuilder
- java - 如何使用 Keycloak 在 Spring Boot 中获取当前登录用户?
- python - MultiValueDictKeyError 单击提交按钮但未选择任何文件时,使用 Django
- mongodb - kubernetes环境下创建mongodb用户报错