Я хочу обновить запись, используя laravel - PullRequest
0 голосов
/ 06 января 2020

Я пытаюсь обновить запись, используя laravel моя запись успешно обновляется, но не обновляется запись указанного c id, когда я нажимаю кнопку обновления, все записи обновляются, как я могу это исправить?

У кого-нибудь есть идеи?

контроллер

             public function updateaction(Request $request,$id)
             {     
             $category=$request->input('select_category');
             $project_name=$request->input('product_name');                  
             $updaterecord=DB::table('projects')- 
             >update(['project_name'=>$project_name,'category_id'=>$category]);                
             if($updaterecord)
             {
             return redirect('view_projects');
             }
             }

html просмотр

            <form action="{{route('project.update', $project->products_id)}}" method="POST" 
              >
             @csrf
            <div class="group-form">
            <select  class="form-control" name="select_category" required>
             <option value="" >Select Category</option>
            @foreach($categories as $category)
            <option  value="{{$category->id}}" @if($project->category_id) == $category->id)  @endif> 
            {{$category->category_name}}</option>     
            @endforeach
           </select>
           </div>
          <br>
          <div class="group-form">
          <input type="text" class="form-control" value="{{$project->project_name}}" 
          placeholder="Update Product Name" name="product_name" required >  
          </div>
         <br>

       <div class="group-form">
       <input type="submit" class=" btn btn-primary form-control" value="UPDATE"  name="Update" >  
      </div>
      </form>

Маршрут

   Route::post('project_update/{id}/update','AdminController@updateaction')->name('project.update');

Ответы [ 2 ]

1 голос
/ 06 января 2020

Вам нужно изменить указанный элемент c, чтобы найти с этим идентификатором и обновить этот указанный c элемент.

$project=Project::find($id);
$project->update(['project_name'=>$project_name,'category_id'=>$category]);
1 голос
/ 06 января 2020

контроллер вам не хватает ->where(['id'=> $id]);

public function updateaction(Request $request,$id)
    {     
        $category=$request->input('select_category');
        $project_name=$request->input('product_name');                  
        $updaterecord=DB::table('projects')
        ->where(['id'=> $id])->update(['project_name'=>$project_name,'category_id'=>$category]);

        if($updaterecord){
        return redirect('view_projects');
        }
    }

в представлении

добавьте @method('put'), если вы используете Resource Route

<form action="{{route('project.update', $project->products_id)}}" method="POST">
   @csrf
   @method('put') 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...