简体   繁体   中英

How to explode array values

I got the array values but I don't know how to explore the values in laravel. I am a new for laravel please help me.

    view()->composer('admin.sidebar', function ($view) {
    $usertypeid = \Auth::user()->role; 
    $moduleRs = DB::table('users')
             ->join('permissions','users.role', '=', 'permissions.role_id')
             ->select('users.role as usersrole','permissions.role_id as role_id','permissions.module_name as module_name')
           ->where('users.role', '=', $usertypeid)
            ->get();
        $view->moduleData = $moduleRs; 
        $data=$moduleRs;
    if ( count($data) > 0 )
        { 
            $result = array();
            foreach($data as $row){
                if(!isset($result[$row->role_id])) {
                    $result[$row->role_id] = array(
                        'role_id' => $row->role_id, 
                        'module_name' => array( $row->module_name), 
                    );
                }else{
                    $result[$row->role_id]['module_name'] = array_merge($result[$row->role_id]['module_name'], array($row->module_name) ); 
                }
            }
            $result =  array_values($result);
        $view->moduleData = $result;
        }
        else 
        {
            $view->moduleData=null;
        }
         });
 }

Can explode value? I got the array values as correct manner.

replace:

 $view->moduleData = $moduleRs;

with:

$view->with('moduleData', $moduleRs);

and put it at the end of your view composer so that your function will look like :

view()->composer('admin.sidebar', function ($view) {
    $moduleRs = DB::table('users')
        ->join('permissions','users.role', '=', 'permissions.role_id')
        ->select('users.role as usersrole','permissions.role_id as role_id','permissions.module_name as module_name')
        ->where('users.role', '=', \Auth::user()->role)
        ->get();

    $moduleData = null;

    if ( count($moduleRs) > 0 ) {
        $result = [];
        foreach($moduleRs as $row){
            if(!isset($result[$row->role_id])) {
                $result[$row->role_id] = [
                    'role_id' => $row->role_id,
                    'module_name' => [$row->module_name],
                ];
            }else{
                $result[$row->role_id]['module_name'] = array_merge($result[$row->role_id]['module_name'], [$row->module_name] );
            }
        }
        $result =  array_values($result);
        $moduleData = $result;
    } 

    $view->with('moduleData', $moduleData);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM