2016-08-30 1 views
0

사용 권한에 Laravel 5.3, Entrust, 양식 기능에 LaravelCollective, 선택 상자를 조작하는 데 Chosen을 사용하고 있습니다.관련 모델 속성을 다중 선택 채우기

전 모델에 내 양식을 결합했고 내 양식 그러나 내가 다 내가 러스트의 내장 활용하고있어 그 역할 (모델)과 관련된 값

로 선택 채우는 데 어려움을 겪고있어, 제대로 채우고 관계에. 역할과 관련된 권한을 다중 선택에서 선택된 값으로 표시하려고합니다.

그래서 $ role-> permissions-> name과 비슷하지만 작동하지 않는 것 같습니다. 양식 매개 변수의 Null 값이 기본값이지만 원하는 모든 것을 표시 할 수 없습니다.

public function edit_role($id) 
{ 
    $permissions = Permission::pluck('name', 'id'); 
    $role = Role::where('id', $id)->first(); 
    return view('settings.access.edit', compact('role', 'permissions')); 
} 
: 여기
  <div class="form-group"> 
       {!! Form::label('Permissions') !!} 
       <script type="text/javascript"> 
        $(document).ready(function() { 
         $(".permissions").chosen({width: "100%"}) 
        }); 
       </script> 
       <div class="input-group"> 
        <div class="input-group-addon"><i class="fa fa-user-plus" aria-hidden="true"></i></div> 
        {!! Form::select('permissions[]', $permissions, null, ['multiple' => 'multiple', 'class' => ' form-control permissions']) !!} 
       </div> 
      </div> 

양식에 정보를 전송 내 컨트롤러 기능입니다 : 여기
   {!! Form::model($role, ['method' => 'PATCH', 'route' => ['settings.access.update_role', $role->id]]) !!} 
       <div class="form-group"> 
        {!! Form::label('Name') !!} 
        <div class="input-group"> 
         <div class="input-group-addon"><i class="fa fa-plus-circle" aria-hidden="true"></i></div> 
         {!! Form::date('name', $role->name, ['class' => 'form-control']) !!} 
        </div> 
       </div> 
       <div class="form-group"> 
        {!! Form::label('Display Name') !!} 
        <div class="input-group"> 
         <div class="input-group-addon"><i class="fa fa-plus-circle" aria-hidden="true"></i></div> 
         {!! Form::date('display_name', $role->display_name, ['class' => 'form-control']) !!} 
        </div> 
       </div> 
       <div class="form-group"> 
        {!! Form::label('Description') !!} 
        <div class="input-group"> 
         <div class="input-group-addon"><i class="fa fa-plus-circle" aria-hidden="true"></i></div> 
         {!! Form::date('description', $role->description, ['class' => 'form-control']) !!} 
        </div> 
       </div> 
       <div class="form-group"> 
        {!! Form::label('Permissions') !!} 
        <script type="text/javascript"> 
         $(document).ready(function() { 
          $(".permissions").chosen({width: "100%"}) 
         }); 
        </script> 
        <div class="input-group"> 
         <div class="input-group-addon"><i class="fa fa-user-plus" aria-hidden="true"></i></div> 
         {!! Form::select('permissions[]', $permissions, null, ['multiple' => 'multiple', 'class' => ' form-control permissions']) !!} 
        </div> 
       </div> 
       <div class="form-group"> 
        <br/> 
        <div class="input-group"> 
         <span class="input-group-btn"> 
          <button class="btn btn-success" type="submit" name="add_user">Update</button> 
         </span> 
        </div> 
       </div> 
       {!! Form::close() !!} 

이 질문에 내 양식의 일부입니다 : 여기

내 양식입니다

답변

0

나는 약간의 해킹 방법에도 불구하고 내 문제를 해결할 수 있었다. 나는 그 배열을 사용,

public function edit_role($id) 
{ 
    $permissions = Permission::pluck('name', 'id'); 
    $role = Role::where('id', $id)->first(); 
    $role_permissions = Role::with('perms')->get(); 
    $items = array(); 
    foreach($role_permissions as $role_permission) 
    { 
     foreach($role_permission->perms as $permission){ 
      $items[] = $permission->id; 
     } 
    } 

    return view('settings.access.edit_role', compact('role', 'permissions', 'items')); 
} 

가 기본적으로 내가 무슨 짓을하는 역할과 관련된 모든 권한을 가져온 다음 배열에 각 권한의 'ID를'캐스팅 :

내 edit_role 컨트롤러는 이제 다음과 같습니다 다음과 같이 ('$ 항목')를 선택 디폴트 값 (NULL)을 채 웁니다 :

    <div class="form-group"> 
         {!! Form::label('Permissions') !!} 
         <script type="text/javascript"> 
          $(document).ready(function() { 
           $(".permissions").chosen({width: "100%"}) 
          }); 
         </script> 

         <div class="input-group"> 
          <div class="input-group-addon"><i class="fa fa-user-plus" aria-hidden="true"></i></div> 
          {!! Form::select('permissions[]', $permissions ,$items, ['multiple' => 'multiple', 'class' => ' form-control permissions']) !!} 
         </div> 
        </div> 


0

글쎄요 ...

return view('settings.access.edit', compact(['role', 'permissions'])); 
관련 문제