(1/1)ReflectionException错误类App \ Http \ Request \ UpdateApplicantRequest不存在

时间:2017-08-10 02:59:15

标签: php laravel laravel-5 laravel-5.4

我是laravel的新手,我正在尝试更新登录用户的个人资料。错误说:

  

Class App \ Http \ Request \ UpdateApplicantRequest不存在

但我把它导入了控制器的顶部。

HomeController.php

<?php

namespace App\Http\Controllers\Applicant;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Repositories\ApplicantsRepository;
use Flash;
use Response;
use App\Models\Applicant;
use App\Http\Request\UpdateApplicantRequest;


class HomeController extends Controller
{

    private $applicantRepository;
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct(ApplicantsRepository $applicantRepo)
    {
        $this->middleware('applicant');
        $this->applicantsRepository = $applicantRepo;
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('applicant-dashboard.home');
    }

    public function edit($id)
    {
        //$applicant = $this->applicantRepository->findWithoutFail($id);
        $applicant = Applicant::where('id',$id)->get()->last();

        if (empty($applicant)) {
            Flash::error('Applicant');

            return redirect(route('applicant.home'));
        }

        return view('applicant-dashboard.edit')->with('applicant', $applicant);
    }

    public function update($id, UpdateApplicantRequest $request)
    {
        $applicant = $this->applicantRepository->findWithoutFail($id);

        if (empty($applicant)) {
            Flash::error('Applicant not found');

            return redirect(route('applicant.home'));
        }

        $input = $request->all();

        $applicant = $this->applicantRepository->update([
            'name' => $input['name'],
            'email' => $input['email'],
            'password' => bcrypt($input['password']),
            'address' => $input['address'],
            'cellphone_no' => $input['cellphone_no']], $id);

        Flash::success('Profile updated successfully.');

        return redirect(route('applicant.home'));
    }
}

以下是我的路线中的代码:

Route::get('/edit/{id}', 'HomeController@edit')->name('applicant.edit');
    Route::patch('/put', 'HomeController@update')->name('applicant.update');

和我的刀片文件中的代码:

@section('content')
    <section class="content-header">
        <h1>
            Applicant Profile
        </h1>
   </section>
   <div class="content">
       {{-- @include('adminlte-templates::common.errors') --}}
       <div class="box box-primary">
           <div class="box-body">
               <div class="row" style="padding-left: 20px">
                   {!! Form::model($applicant, ['route' => ['applicant.update', $applicant->id], 'method' => 'patch']) !!}

                        @include('applicant-dashboard.fields')

                   {!! Form::close() !!}
               </div>
           </div>
       </div>
   </div>
@endsection

我正在寻求帮助。 在此先感谢。

1 个答案:

答案 0 :(得分:1)

首先,您使用了错误的UpdateApplicantRequest命名空间。

变化:

use App\Http\Request\UpdateApplicantRequest;

要:

use App\Http\Requests\UpdateApplicantRequest;

然后,从以下位置更改您的表单:

{!! Form::model($applicant, ['route' => ['applicant.update', $applicant->id], 'method' => 'patch']) !!}

    @include('applicant-dashboard.fields')

{!! Form::close() !!}

为:

{!! Form::model($applicant, ['route' => ['applicant.update', $applicant->id], 'method' => 'post']) !!}

    {!! method_field('patch') !!}
    @include('applicant-dashboard.fields')

{!! Form::close() !!}