簡體   English   中英

Laravel 6.x:UserController 中的更新方法

[英]Laravel 6.x : Update method in UserController

大家好,我允許自己來找你,因為當我想在我的用戶控制器中實現更新方法時,我確實遇到了一個問題,但它不起作用我解釋了兩個。 當我轉到我的摔跤比賽版本視圖時,我的數據很好,但是當我修改它並發送它時什么也沒有發生我加入我的控制器看到了我和我的路線

控制器 :

public function update(Request $request, User $user)
{
    // $user = User::findOrFail($id);

    $request->validate([
        'firstname' => 'required',
        'name' => 'required',
        'email' => 'required',
        'usertype' => 'required',
    ]);

    $user->update($request->all());

    return redirect('/role-register')->with('status', 'The account is update !');
}

編輯視圖 :

<div class="container">
        <div class="row">
            <div class="col-md-12">

                <div class="card">
                    <div class="card-header">
                        <h4>Edit register roles</h4>
                    </div>
                    <div class="card-body">

                            <form action="{{ route('role.update', ['id', $users->id]) }}" enctype="multipart/form-data" method="POST">
                                @csrf
                            @method('PUT')
                                <div class="form-group">
                                    <label>First Name</label>
                                    <input type="text" name="firstname" value="{{ $users->firstname }}" class="form-control">
                                </div>

                                <div class="form-group">
                                    <label>Name</label>
                                    <input type="text" name="name" value="{{ $users->name }}" class="form-control">
                                </div>

                                <div class="form-group">
                                    <label>Email</label>
                                    <input type="email" name="email" value="{{ $users->email }}" class="form-control">
                                </div>

                                <div class="form-group">
                                    <label>Give role</label>
                                    <select name="usertype" class="form-control" value="{{ $users->usertype }}">
                                        <option value="admin">Admin</option>
                                        <option value="user">user</option>
                                    </select>
                                    <button type="submit" class="btn btn-success">Update</button>
                                    <a href="{{ route('role.register') }}" class="btn btn-danger">Cancel</a>
                                </div>
                            </form>

                    </div>
                </div>

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

路線 :

Route::group(['middleware' => ['auth', 'admin']], function () {

    Route::get('/dashboard', function () {
        return view('admin.dashboard');
    })->name('dashboard');

    Route::get('/role-register', 'Admin\DashboardController@registered')->name('role.register');

    Route::get('/role-edit/{id}', 'Admin\DashboardController@edit')->name('role.edit');

    Route::put('/role-register-update/{id}', 'Admin\DashboardController@update')->name('role.update');

    Route::delete('/role-delete/{id}', 'Admin\DashboardController@destroy')->name('role.delete');

    Route::get('/cutomers', function () {
        return view('admin.customer');
    })->name('customers.list');
});

感謝幫助我

確保將這些輸入添加到User.php模型中的$fillable User.php

class User extends Authenticatable
{
   ...
   protected $fillable = [
     'firstname' => 'required',
     'name' => 'required',
     'email' => 'required',
     'usertype' => 'required',
   ];
....

在你的控制器中試試這個,讓我知道會發生什么:

...
   $updated = $user->update($request->all());
   if($updated){
    return redirect('/role-register')->with('status', 'The account is update !');
   }else{
       return redirect('/role-register')->with('status', 'Could not update');
   }

在您的 web.php 文件中更新

Route::put('/role-register-update/{id}

Route::put('/role-register-update/{user}

或者將控制器的方法從

...Request $request, User $user){...

...Request $request, User $id){...

當您使用模型綁定時,您必須在路由中使用相同的詞

Route::put('/role-register-update/{user}', 'Admin\DashboardController@update')->name('role.update');

public function update(Request $request, User $user)
{
    .....
    $user->update($request->all());

    return redirect('/role-register')->with('status', 'The account is update !');
}

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

別的

Route::put('/role-register-update/{id}', 'Admin\DashboardController@update')->name('role.update');

    public function update(Request $request,$id)
    {
        $user = User::findOrFail($id);
        .....
        $user->update($request->all());

        return redirect('/role-register')->with('status', 'The account is update !');
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM