簡體   English   中英

Laravel 9 使用 controller MVC 更新表單值

[英]Laravel 9 Update Form Values with controller MVC

我想通過將它們從路由發送到 controller 來更新我數據庫中表單中的輸入值。我做錯了什么? 你能幫助我嗎? 我之前嘗試過 @method('PUT') 方法。 這有點令人困惑。 我正在分享代碼。 如果您能提供幫助,我將非常高興,謝謝。

...

 <div class="modal-body">

                                                    <div class="form-group text-center"
                                                        style="position: center; margin-top:3em;">

                                                        <form action="{{ 'edit-name/' . $user->id }}" method="POST"
                                                            enctype="multipart/form-data">
                                                            @csrf

                                                            <label for="fname">
                                                                {{ __('welcome.fullname') }}:</label>
                                                            <input name="name1" type="hidden"
                                                                placeholder="{{ $user->name }}">

                                                    </div>

                                                    <br>
                                                    <br>
                                                    <br>

                                                    {{-- //Name Edit Button --}}

                                                    <button type="submit"
                                                        class="btn-sm app-btn-secondary">{{ __('welcome.confirm') }}</button>

...

我的路線和 controller

...

Route::get('edit-name/{id}', [HomeController::class, 'editname']);

...

...

  public function editname(Request $request, $id){
         dd(1);
        $user= Auth::user();
        dd($user);
        $id=$request->id;
        
        
        $name=$request->input('name1');
      
        
        $isUpdateSuccess = User::where('id', $id) ->update(['name1'=>$name,   ]);
        

        if($isUpdateSuccess)
 echo '<h1>Update Success</h1>';
        else echo '<h1>Update Failed </h1>';
      


    }

...

您正在使用POST 方法從模態發送數據,但在您的路線中您正在通過GET 方法使用此數據。 我會建議你使用POST方法,這樣 user_id 就不會是 URL 中的append ,所以試試這個,

你的刀片

<div class="modal-body">

<div class="form-group text-center" style="position: center; margin-top:3em;">

<form action="{{ 'edit-name' }}" method="POST"                                                    enctype="multipart/form-data">
@csrf
      <input type="hidden" name="id" placeholder="{{ $user->id }}">
   <label for="fname">
   {{ __('welcome.fullname') }}:</label>
      <input name="name1" type="text" placeholder="{{ $user->name }}">

</div>

<br>
<br>
<br>

{{-- //Name Edit Button --}}

<button type="submit" class="btn-sm app-btn-secondary">{{__('welcome.confirm') }}</button>

你的路線

Route::post('/edit-name', [HomeController::class, 'editname']);

你的 controller

 public function editname(Request $request){
         // dd(1);
        $user= Auth::user();
        // dd($user);
        $id=$request->id;
        
        
        $name=$request->input('name1');
      
        
        $isUpdateSuccess = User::where('id', $id) ->update(['name1'=>$name,   ]);
        

        if($isUpdateSuccess)
 echo '<h1>Update Success</h1>';
        else echo '<h1>Update Failed </h1>';
      


    }

改變行動

action="{{ 'edit-name/'. $user->id }}"

action="{{ url('edit-name',$user->id) }}"

暫無
暫無

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

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