2016-06-16 4 views
1

사용자 목록이 있으며 목록의 각 사용자에 대해 선택된 값 역할 값이 표시된 선택 상자가 있습니다.Laravel Form 복수 레코드 업데이트

역할을 업데이트해야하는 컨트롤러의 메서드에 제출 단추를 사용하여 각 사용자의 모든 수정 사항을 보내는 방법을 생각했습니다. 나는 모른다. 내가 컨트롤러를 준비하는 방법을 모르는

{!!Form::open(['url' => ['admin/users/edit'], 'class' => 'form-horizontal', 'method' => 'POST']) !!} 

@foreach($users as $user) 
    <div class="form-group"> 
     <div class="list-user-element">{!! $user->name !!}</div> 
     <div class="list-user-email">{!! $user->email !!}</div> 
     <div> 
      {!! Form::select('role', $roles, $user->role->label, ['class' => 'form-control']); !!} 
     </div> 
    </div> 
@endforeach 

<div class="form-group">   
    <div class="col-sm-offset-2 col-sm-5"> 
     {!! Form::submit('Update', array('class' => 'btn btn-warning')) !!} 
    </div> 
</div> 

{!! Form::close() !!} 

, 어느 정보의 종류를 컨트롤러에 전달됩니다

는 제대로 작동 형태이다.

Route::post('admin/users/edit', '[email protected]'); 

그리고 여기 준다 오류 : 당신은 컨트롤러에서 다음

public function editRegisteredUsersRoles(Request $request) 
{ 
    foreach ($request->users as $user_id => $role) { 
     //... 
    } 
} 
+0

또한 경로를 다시 확인하십시오. –

답변

1

100 % 당신의 문제가 무엇인지 확실히 말하고 있습니까? 여기에 dd($request) 요청시 사용자의 모든 역할이 있습니까?

나는 같은 이름을 가진 선택 상자를 던지는 사용자를 통해 반복한다는 사실에 문제가 있다고 생각합니다. 일반적으로 POST 요청을 보내면 $_POST[<Form's name>]으로 정보에 액세스하므로 여기에 중복 문제가있을 수 있습니다. 나는 위의 변경 무엇

{!! Form::select('role' . $user->id, $roles, $user->role->label, ['class' => 'form-control']); !!}

는 단순히 독특한 사람들의 각을 만들기 위해 이름이 '역할'에 대한 사용자의 ID를 압정으로 고정됩니다 : 아마도 당신은 뭔가를 시도해야합니다.

0

아니에요이

{!! Form::select('users[' . $user->id . '].role', $roles, $user->role->label, ['class' => 'form-control']); !!} 

같은 형태를하고 있었다

public function editRegisteredUsersRoles(Request $request) 
{ 
    dd($request); 
}