"Type error: Too few arguments to function AppHttpControllersUserController::attendance(), 0



我的数据库中有两个表格和出勤表。我现在想做的是,我想根据用户在与其个人资料相关的出勤视图中根据用户的出勤数据显示出勤数据。这是我在usercontroller中的出勤函数。

 public function attendance($id)
    {
        $user = UserProfile::findOrFail($id);
        $this->authorize('modifyUser', $user);
        return view ('user.attendance', ['user'=>$user]);
    }

这是我出勤率的途径。

Route::get('/attendance/', ['as' => 'user.attendance', 'uses' => 'UserController@attendance']);

这是我的出勤观点。

@extends('layouts.app')
@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-12">
                <h1><i class="fa fa-university"></i> Attendance</h1>
            </div>
            <div class="row">
                <table class="table table-bordered">
                    <tr>
                        <th>No</th>
                        <th>Date</th>
                        <th>Time</th>
                        <th>Present</th>
                    </tr>
                    <?php $no=1; ?>
                    <tr>
                        <td>{{ $no++ }}</td>
                        <td>{{$user->attendance->date}}</td>
                        <td>{{$user->attendance->time}}</td>
                        <td>{{$user->attendance->present}}</td>
                    </tr>
                </table>
            </div>
        </div>
    </div>
@stop

这是我遇到的错误。类型错误:很少有参数无法函数应用程序 http Controllers usercontroller :: actingance(),0传递,并且通过了1个预期的1个。我是Laravel的新手。

您正在遇到此错误,因为attendance()方法期望ID并且您不会通过它。将路线更改为:

Route::get('attendance/{id}', ['as' => 'user.attendance', 'uses' => 'UserController@attendance']);

并在创建指向attendance()方法的链接时传递ID:

{{ route('user.attendance', ['id' => 1]) }}

或:

{{ url('attendance/1') }}

如果要获取当前登录的用户的ID,请不要通过ID。改用auth()-user()

public function attendance()
{
    $this->authorize('modifyUser', auth()->user());
    return view ('user.attendance');
}

最新更新