我是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
我正在寻求帮助。 在此先感谢。
答案 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() !!}