Сохранить динамически созданное значение флажка в другой таблице в Laravel - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть следующий код для динамического создания флажков из одной таблицы:

{!! Form::open(['url' =>URL::to('admin/user/'.$profileUser->id) , 'method'=>'PUT', 'enctype'=>'multipart/form-data' ]) !!}
                    @foreach ($userRoles as $key => $userRole)
                    <tr>
                        <td width="10%">{{ Form::label($userRole->name) }}</td>
                        <td>{{ Form::checkbox( 'rolename[]', $userRole->id) }}</td>
                    </tr>
                    @endforeach
                    <tr>{{ Form::submit('Save', array('class' => 'btn', 'name' => 'roleSubmit')) }}</tr>
            </tbody>
            {{ Form::close() }}

В контроллере у меня есть:

    if (isset($_POST['roleSubmit'])){
        DB::table('role_users')->where('user_id', $request->get('id', $id))->delete();


        $userRole = json_encode($request->input('rolename'));
        DB::table('role_users')->insert(
            array(
                'user_id' => $id,
                'role_id' => $userRole
            )
        );
        return redirect()->back();
    }

Мне нужно динамически создать несколько флажков из таблицы «Роли» enter image description here

и отобразить так: enter image description here

Затем мне нужно сохранить значения флажков в 'role_users' следующим образом: enter image description here

Вместо этого, для приведенного выше фрагмента кода, я получаю это: enter image description here

Какое-нибудь указание, где я это испорчу?

1 Ответ

0 голосов
/ 24 апреля 2018

Попробуйте.

if (isset($_POST['roleSubmit'])){
    DB::table('role_users')->where('user_id', $request->get('id', $id))->delete();


    $userRole = $request->input('rolename');
    foreach($userRole as $role){
        DB::table('role_users')->insert(
           array(
             'user_id' => $id,
             'role_id' => $role
           )
        );
    }
    return redirect()->back();
}

за 2-й запрос

Контроллер

$RoleByUser = DB::table('role_users')
                  ->where('user_id', $user_id)
                  ->get()
                  ->pluck('role_id')
                  ->ToArray();

лезвие

{{ Form::checkbox( 'rolename[]', $userRole->id, (in_array($userRole->id, $RoleByUser)) ? true : false) }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...