2017-12-25 18 views
0

나에게laravel에서 여러 값을 체크 박스를 저장하는 방법을 내가 단지 time..can 사람에 하나 개의 값을 저장할 수있는이 코드 어려움, 체크 박스를 사용하여 여러 항목을 저장하는 데있어 5.5

컨트롤러 아이디어를 줄 :

$crud = explode(',', $request->crud_selected); 
    if (count($crud) > 0) { 
    foreach ($crud as $x) { 
     $slug = strtolower($x) . '-' . strtolower($request->resource); 
     $display_name = ucwords($x . " " . $request->resource); 
     $description = "Allows a user to " . strtoupper($x) . ' a ' . ucwords($request->resource); 

     $permission = new Permission(); 
     $permission->name = $slug; 
     $permission->display_name = $display_name; 
     $permission->description = $description; 
     $permission->save(); 
     } 
     Session::flash('success', 'Permissions were all successfully added'); 
     return redirect()->route('permissions.index'); 
    } 
    } else { 
    return redirect()->route('permissions.create')->withInput(); 
    } 

보기 블레이드 :

<script> 
 
var app = new Vue({ 
 
     el: '#app', 
 
     data() { 
 
     return:{ 
 
     permissionType: 'basic', 
 
     resource: '', 
 
     crudSelected: [] 
 
     } 
 
    } 
 
    }); 
 
    
 
</script>
<div class="from-group" v-if="permissionType == 'crud'"> 
 
       <div class="checkbox-group" v-model="crudSelected"> 
 
       
 
       <label class="checkbox-inline"><input type="checkbox" name="crud_selected" value="create">Create</label> 
 
       <label class="checkbox-inline"><input type="checkbox" name="crud_selected" value="read">Read</label> 
 
       <label class="checkbox-inline"><input type="checkbox" name="crud_selected" value="message">Update</label> 
 
       <label class="checkbox-inline"><input type="checkbox" name="crud_selected" value="message">Delete</label> 
 
       </div> 
 
       </div>

문제를 해결하는 방법을 알려주세요.

답변

1

나는 이미 내가 컨트롤러 코드를 변경 할 것입니다 답변 찾기 위해 관리 할 수 ​​있습니다.

올드

$crud = explode(',', $request->crud_selected);

새로운

$crud = $request->input('crud_selected'); 

는 내보기 블레이드에 난 내

name="crud_selected[] 

Wallahh 작동 ..

이 추가 당신이 체크 박스의 입력에 확인 값보다 더 걸릴하려는 경우
0

checkbox 값이 배열을 반환하기 때문에 분해 값이 필요하지 않습니다. v-model은 입력에만 사용됩니다.

Form Input Bindings

<div class="from-group" v-if="permissionType == 'crud'"> 
     <div class="checkbox-group" > 

      <label class="checkbox-inline"><input type="checkbox" v-model="crudSelected">Create</label> 
      <label class="checkbox-inline"><input type="checkbox" v-model="crudSelected">Read</label> 
      <label class="checkbox-inline"><input type="checkbox" v-model="crudSelected">Update</label> 
      <label class="checkbox-inline"><input type="checkbox" v-model="crudSelected">Delete</label> 
     </div> 
</div> 
0

, 난 당신이에 의해 함수에 다음이

<label class="checkbox-inline"><input type="checkbox" id ="checklval" name="crud_selected" v-model="crudSelected" v-on:change="trackcheck(Create)" :value="Create" >Create</label> 

같은 예를 들어 당신의 체크 박스에 각 변경 이벤트를 호출합니다 정의 할 수 있다고 생각하여

trackcheck($labid) { 
     if(document.getElementById('checklval').checked==true){ 
      this.ValArray.push($labid) 
     } else if(document.getElementById('checklval').checked==false){ 
      this.ValArray.pop($labid) 
     } 
    } 

:이 값은 다음과 같이 확인란을 선택하지 않은 경우 VUE 구성 요소 스크립트 당신은 내가 그것을 체크 박스에서 선택한 각 값을 적 valarray이 밀어 것이다라는 배열을 정의하고 또한 그것에서 나타납니다, 이 기능을 구현합니다 이제 체에 선택된 값이있는 배열이 생깁니다. ck 상자 입력, 희망이 도움이