【问题标题】:Requested URL not found on the server in XAMPP using laravel使用 laravel 在 XAMPP 中的服务器上找不到请求的 URL
【发布时间】:2019-06-14 00:57:49
【问题描述】:

我试图编辑和更新员工信息,很遗憾,它不起作用 我获取了员工 ID,但是当我发送更新的数据时它不起作用。 它显示在服务器上找不到请求的 URL

这是我的控制器

public function edit_function($id){
    $user = User::find($id);
    return view('employee.empedit')->with('user',$user);
}

public function update(Request $request,$id){

    $user = User::find($id);

    $user->name = $request->input('name');
    $user->email = $request->input('email');
    $user->phonenumber = $request->input('phonenumber');
    $user->profession = $request->input('profession');

    if($request->hasfile('images')){
        $file= $request->file('images');
        $extension = $file->getClientOriginalExtension();
        $filename = time() . '.' . $extension;
        $file->move('uploads/user/', $filename);
        $user->images= $filename;

    }
    $user->save();
    return redirect('empprofile')->with('success', 'Data Updated.');
}

这是我的看法

<form method="post" action="/updateimages/{{ $user->id }}" enctype="multipart/form-data">
    <div class="container">
        <div class="jumbotron">
            <h2>Update The Information Of Employee</h2>

                    {{ csrf_field() }}
                    {{ method_field('PUT') }}
                    <div class="form-group">
                      <label >Name:</label>
                    <input type="text" class="form-control" id="name" placeholder="Enter Name" name="name" value="{{ $user->name }} ">
                    </div>
                    <div class="form-group">
                        <label >Email:</label>
                        <input type="email" class="form-control" id="email" placeholder="Enter email" name="email" value="{{ $user->email }} ">
                    </div>
                    <div class="form-group">
                            <label >Phone Number:</label>
                            <input type="text" class="form-control" id="phonenumber" placeholder="Enter Phone Number" name="phonenumber" value="{{ $user->phonenumber }} ">
                    </div>
                    <div class="form-group">
                            <label >Profession :</label>
                            <input type="text" class="form-control" id="profession" placeholder="Enter Profession" name="profession" value="{{ $user->profession }} ">
                    </div>

                    <div class="form-group">
                            <label >Image :</label>
                            <input type="file" class="form-control" id="images" placeholder="" name="images" value="{{ $user->images }}">
                    </div>

                    <div class="form-group">
                            <button class="btn btn-primary" type="submit" name="submit" style="width:50%;">Update Data</button>
                    </div>




        </div>
    </div>
</form>

这是我的路线

Route::get('edit_profile/{id}' , "empController@edit_function");

Route::put('/updateimages/{id}', "empController@update");

它显示在服务器上找不到请求的 URL

【问题讨论】:

  • 您是否尝试重新制作路由器的缓存 (php artisan route:cache)?

标签: php sql laravel


【解决方案1】:

因为我不是Url和id的忠实粉丝所以我会去

基于名称的路由和路由模型绑定

第 1 步:重构路由

Route::get('edit_profile/{user}' , "empController@edit_function")
     ->name('user.editProfile');

Route::put('/updateimages/{user}', "empController@update")
     ->name('user.updateProfile');

第 2 步:重构控制器方法

public function edit_function(User $user)
{
    $user = $user;
    return view('employee.empedit')->with('user',$user);
}

public function update(Request $request,User $user)
{

    $user->name = $request->input('name');
    $user->email = $request->input('email');
    $user->phonenumber = $request->input('phonenumber');
    $user->profession = $request->input('profession');

    if($request->hasfile('images')){
        $file= $request->file('images');
        $extension = $file->getClientOriginalExtension();
        $filename = time() . '.' . $extension;
        $file->move('uploads/user/', $filename);
        $user->images= $filename;

    }
    $user->save();
    return redirect('empprofile')->with('success', 'Data Updated.');
}

第 3 步:编辑 Html 并切换到路由助手

<form method="POST" action="{{route('user.updateProfile',['user' => $user])}}" enctype="multipart/form-data">

如果您遇到任何问题,请在下方评论

【讨论】:

    【解决方案2】:

    这是因为其他路线替代了您现有的路线。可以通过调试解决。这将花费你的时间。我有一个更好的解决方案, 你命名你的路线。并通过route()函数调用路由。

    根据您的上述信息,

    可能是,

    在路线中->

    Route::put('/updateimages/{id}', "empController@update")->name('updateImage');
    

    在视图中(表单操作)->

    <form method="post" action="{{ route('updateImage', $user->id ) }}" enctype="multipart/form-data">
    

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 1970-01-01
      • 2017-12-26
      • 2015-03-30
      • 2016-11-23
      • 1970-01-01
      • 2015-12-17
      • 2016-12-21
      • 2018-04-19
      相关资源
      最近更新 更多