Kistlak's avatar

How To Solve This Update Error

I'm creating a web site. And I have created a registration page. I want to update my details.

But, It gives me this error - Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException No message

How can I Fix this ??

Here is my AdminPanel.blade.php

<table class="table table-bordered">

<tr>
<td> Name </td>
<td> Email </td>
<td> Images </td>
</tr>


@foreach($data as $value )
<tr>
<td> {{ $value->username }} </td>
<td> {{ $value->email }} </td>
<td> <img src='{{ $value->filemove }}' style='width:100px;height:100px;'> </td>
<td> <a href="edit/{{ $value->id }}"><input type="submit" name="update" value="Update" class="btn-primary"></a> </td>
<td> <a href="delete{{ $value->id }}"><input type="submit" name="delete" value="Delete" class="btn-danger"></a> </td>
</tr>
@endforeach
</table>

Here is my AdminUpdate.blade.php

 <form action="edit{{ $users[0]->id }}" method="post" enctype="multipart/form-data">

    {{ method_field('PUT') }}
    {{ csrf_field() }}

  <div class="form-group">
    <label>Username : *</label>
    <input type="text" class="form-control" name="username" value="{{$users[0]->username}}" placeholder="Enter Your Username" required>
  </div>
    
    <div class="form-group">
    <label>Email : *</label>
    <input type="email" class="form-control" name="email" value="{{$users[0]->email}}" placeholder="Enter Your Username" required>
  </div>
  
  <div class="form-group">
    <label>Password : *</label>
    <input type="password" class="form-control" name="password" value="{{$users[0]->password}}" placeholder="Enter Your Password" required>
  </div>
  
  <div class="form-group">
    <label>Upload Profile Picture :</label>
    <input type="file" class="form-control-file" name="file_img" aria-describedby="fileHelp">
    <small id="fileHelp" class="form-text text-muted">If U Want , U Can Skip Upload A Profile Picture</small>
  </div>
  
  @section('btnName',"Update") 
  <input type="submit" class="btn btn-primary" onclick="myFunction()" name="submit" value="@yield('btnName')">
                    </form>

Here is my AdminPanelController.php

<?php

namespace App\Http\Controllers;

use Auth;
use Illuminate\Http\Request;
use App\User;
use Validator;
use Illuminate\Support\Facades\Input;

class AdminPanelController extends Controller
{
    public function index()
    {
      $data = User::all();
      //$data = login::orderBy('created_at', 'desc')->get();
      return view('AdminPanel', ['data' => $data]);
    }
    
    public function adminedit(Request $request, $id)
    {
        $this->validate($request, [
            'email' => 'required'
        ]);
        
        $users = User::find($request['id']);
        $users->username = $request['username'];
        $users->email = $request['email'];
        $users->update();
        return redirect('AdminPanel');
        
       
    }
    
}

Here is my Route

Route::put('edit/{id}','AdminPanelController@adminedit');
0 likes
4 replies
bobbybouwmann's avatar

You forgot a / in your form action!

This

action="edit{{ $users[0]->id }}

Should be this

action="edit/{{ $users[0]->id }}
Snapey's avatar

and users[0]->id- is that because you used get() in your controller and not first() and you ended up with a collection of 1 user?

Kistlak's avatar

@bobbybouwmann - I fixed that and still I get that error. How can I Fix this ??

@Snapey - I can't understand that. Can you explain more ??

Snapey's avatar

Why are you having to index $users as an array? Don't you have the user being edited?

Please or to participate in this conversation.