【问题标题】:Laravel showing error Too few arguments to function App\Http\Controllers\UserController::admin_side_update(), 1 passed and exactly 2 expectedLaravel 显示错误 App\Http\Controllers\UserController::admin_side_update() 的参数太少,通过了 1 个,预期正好有 2 个
【发布时间】:2019-06-29 16:02:00
【问题描述】:

我创建了资源以外的功能,我正在尝试更新我的数据,但更新页面显示错误。 我正在解决我试图解决的这个错误,但我无法找到传递第二个变量的方法

Edit.blade.php

    @extends('home')

@section('title', '| Edit User')

@section('dashboard')

<div class='col-lg-4 col-lg-offset-4'>

    <h1><i class='fa fa-user-plus'></i> Edit {{$user->name}}</h1>
    <hr>

     <form action="{{ route('users.updated', ['id' => $user->id]) }}" method="post" enctype="multipart/form-data">
      {{ csrf_field() }}

    <div class="form-group">
        <label for="name" class="col-sm-2 col-form-label">Name *</label>

            <input type="text" class="form-control col-sm-10" id="name" name="name"
             value="{{$user->name}}" />
    </div>


    <div class="form-group">
        <label for="email" class="col-sm-2 col-form-label">Email *</label>

            <input type="email" class="form-control col-sm-10" id="email" name="email"
             value="{{$user->email}}" />
    </div>


    <h5><b>Give Role</b></h5>

    <div class='form-group'>
        @foreach ($roles as $role)
            <input class="form-check-input" type="checkbox" name="roles[]" value="{{ $role->id }}">  
  <label class="form-check-label" for="defaultCheck1">
    {{$role->name}}
  </label>
        @endforeach
    </div>

    <div class="form-group">
       <label for="password" class="col-sm-2 col-form-label">Password *</label>

            <input type="password" class="form-control col-sm-10" id="password" name="password"
            value="{{$user->password}}" />

    </div>

    <div class="form-group row"  style="margin:5%;">

            <button type="submit" class="btn btn-primary col-sm-3 col-sm-offset-3">Edit User</button>
      </div>
  </form>


</div>

@endsection

Web.php

    Route::get('users/{id}/change' ,'UserController@admin_side_edit');
        Route::post('users/savechanges/{id}', [
  'as' => 'users.updated',
  'uses' => 'UserController@admin_side_update'
]);

如果有人愿意帮助我,这会导致我出错。

修改后

【问题讨论】:

    标签: php laravel laravel-5 laravel-5.4 laravel-5.6


    【解决方案1】:

    实际上,您并没有将 id 传递给刀片中的动作。

    对于您在表单中的操作,您可以使用:

    {{ route('users.updated', ['id' => $user->id]) }}
    

    并且不要忘记在路由中添加参数

    Route::post('users/savechanges/{id}', [
      'as' => 'users.updated',
      'uses' => 'UserController@admin_side_update'
    ]);
    

    希望对你有帮助。

    【讨论】:

    • 现在它给出的错误我已经更新了有问题的图像
    • 我无法复制:/
    • 你的url没变,你改了路由,还是刷新了页面?
    猜你喜欢
    • 2021-11-12
    • 2018-05-23
    • 2019-04-21
    • 2020-01-29
    • 2020-10-17
    • 2018-10-11
    • 2020-05-06
    • 2020-01-23
    • 2019-10-29
    相关资源
    最近更新 更多