Yajra нет доступного движка для приложения\пользователя

Yajra нет доступного движка для приложения\пользователя

15.04.2018 11:42:33 Просмотров 24 Источник

Я сделал для своей роли администратора cms теперь у меня есть 2 роли администратора супер админ и обычный админ у меня есть страница для управления пользователями как супер админ так и обычный админ может видеть ее но с разными данными

вот код контроллера

  public function index()
    {        
         $this->super_admin_role_check();
        return view('admin.users.index');   
    }



    public function usersList(){
        $super_admin_role = Role::where('name','super_admin')->first();
        $is_super_admin=$this->isSuperAdmin();

        if($is_super_admin){
            $data = User::all();
        }else{
            // Admin can get all users except super admin
            $super_admin = DB::table('role_user')->where('role_id',$super_admin_role->id)->first();
            $data = User::where('id','!=',$super_admin->user_id)->first();
        }

        if(!$data){
            $data=[];
        }
        return DataTables::of($data)->make(true);
    }   




    // This function check if the super_admin roles exist or not
    public function super_admin_role_check(){

        $user = Auth::guard()->user();

        $super_admin_role = Role::where('name','super_admin')->first();

        if(!$super_admin_role){

            \Artisan::call('db:seed'); 

            // if there's no role factory create super_admin role and assign it to the super admin user
            $super_admin_role = Role::where('name','super_admin')->first();

            DB::table('role_user')->insert([
            'user_id'=>$user->id,'role_id'=>$super_admin_role->id
            ]);

            $permissions = Permission::all();

            // here i give all permissions to the super admin
            foreach($permissions as $permission){

            DB::table('permission_role')->insert(['permission_id'=>$permission->id,
            'role_id'=>$super_admin_role->id
            ]);
            }
        }
        return $super_admin_role;
    }








    // This Function Check if the user is super admin?
    public function isSuperAdmin(){
        $user = Auth::guard()->user();
        $super_admin_role = Role::where('name','super_admin')->first();
        $is_super_admin = DB::table('role_user')->where('user_id',$user->id)->where('role_id',$super_admin_role->id)->first();
        return $is_super_admin;
    }

Проблема заключается в том, что когда я регистрируюсь как супер-администратор, все идет хорошо, но когда я регистрируюсь как обычный администратор, я получаю ошибку " нет доступного движка для приложения\пользователя" в \\yajra поставщика\фреймворк Laravel-объекты DataTable-оракул\НИЦ\объекты DataTable.РНР какая-нибудь помощь, пожалуйста?

У вопроса есть решение - Посмотреть?

Ответы - Yajra нет доступного движка для приложения\пользователя / Yajra No available engine for App\User

Является ответом!
Мирахмад Мирзажанов

с этим? $data = User::where('id','!=',$super_admin->user_id)->get();

https://stackoverflow.com/questions/49840086/yajra-no-available-engine-for-app-user/49840336#comment86695332_49840336
да но когда я dd это в индексной функции все нормально
https://stackoverflow.com/questions/49840086/yajra-no-available-engine-for-app-user/49840336#comment86695426_49840336
$данных = пользователь::где('идентификатор','!=', $super_admin->user_id) - > > get();
Unique

09.01.2020 04:09:27

Удалить сначала (). Так как вы возвращаете только одну строку.

$data = User::where('id','!=',$super_admin->user_id);

Это должно сработать

Закрыть X