Небольшой код панели администратора на Laravel - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь разработать небольшую панель управления для администратора, чтобы распределять роли между другими пользователями, дело в том, что мой код не показывает никаких ошибок, но в то же время не влияет на другие роли других пользователей.он остается таким же, моя панель управления основана на методе отправки автоматически, когда я проверяю роль для конкретного пользователя.

мой административный код для просмотра, который содержит панель управления:

      <div class="row offset-2">

           <div class="col-md-4 course_box">


   <h4>Panel de Controle </h4><br>
   <h6> <b>Liste des utilisateurs :</b></h6>
    <br><br>
   <div>
    <table class="table table-hover">
        <tr>
            <th>#</th>
            <th>Nom</th>
            <th>Email</th>
            <th>Elève</th>
            <th>Enseignant</th>   
            <th>Parent</th>   
            <th>Administrateur</th>
            </tr>
            @foreach($users as $user)
             <form method="post" action="/add-role">

           {{ csrf_field() }}


           <input type="hidden" name="email" value="{{ $user->email }}">
            <tr>
                  <th>{{ $user->id }}</th>
                  <td>{{ $user->name }}</td>
                   <td>{{ $user->email }}</td>
                    <td>
                        <input type= "checkbox" name='role_elève' onChange="this.form.submit()" {{ $user->hasRole('Elève') ? 'checked' : ' ' }}>  </td>
                     <td> <input type= "checkbox" name='role_ens' onChange="this.form.submit()" {{ $user->hasRole('Enseignant') ? 'checked' : ' ' }}></td>
                      <td> <input type= "checkbox" name='role_parent'  onChange="this.form.submit()" {{ $user->hasRole('Parent') ? 'checked' : ' ' }}></td>
                       <td> <input type= "checkbox" name='role_admin'  onChange="this.form.submit()" {{ $user->hasRole('Admin') ? 'checked' : ' ' }}></td>
                   </tr>
               </form>
                   @endforeach
                   </table>
                   </div>

          </div></div>

web.php содержит нижеприведенную роль маршрута:

  Route::post('add-role', [ 
  'uses' => 'PostsController@addRole',
   'as' => 'admin',
    'middleware' => 'roles',
      'roles' => ['Admin']
   ]);

Метод addRole в PostsController реализует следующий код:

   Public function addRole(Request $request) {

        $user = User::where('email', $request['email'])->first();
        $user->roles()->detach();

      if($request['role_elève'])
      {
         $user->roles()->attach(Role::where('name', 'Elève')->first());

      }

       if($request['role_ens'])
      {
         $user->roles()->attach(Role::where('name', 'Enseignant')->first());

      }

       if($request['role_parent'])
      {
         $user->roles()->attach(Role::where('name', 'Parent')->first());

      }

    if($request['role_admin'])
      {
         $user->roles()->attach(Role::where('name', 'Admin')->first());

      }

      return redirect()->back();
    }

Я не могу найти ошибку, когда laravel не работает "Если бы не было подробностей, любая помощь была бы очень полезна

1 Ответ

0 голосов
/ 25 мая 2018

Ваш $request является объектом, а не массивом ...

Поэтому, чтобы заставить его работать, измените все ваши объявления $request[ на $request-> в вашем PostController, как в этом примере:

public function addRole(Request $request) {

$user = User::where('email', $request->email)->first();
$user->roles()->detach();

if($request->role_elève) {
    $user->roles()->attach(Role::where('name', 'Elève')->first());
}

if($request->role_ens) {
   $user->roles()->attach(Role::where('name', 'Enseignant')->first());
}

if($request->role_parent) {
   $user->roles()->attach(Role::where('name', 'Parent')->first());
}

if($request->role_admin) {
   $user->roles()->attach(Role::where('name', 'Admin')->first());
}

return redirect()->back();
}

Примечание:

Я бы также предложил изменить имя переменной role_elève на role_eleve.Если это так, не забудьте изменить поля в вашем представлении соответственно ...

...