2016-05-25 44 views
2

大家晚安! ​ ​ChartsJS和Laravel5

我在PHP控制器以下代碼:

public function getMainAdminBackend(){ 
    $user_info = \DB::table('users') 
       ->select('role_id', \DB::raw('count(*) as total')) 
       ->groupBy('role_id') 
       ->get(); 
    return view('admin.main')->with('userInfo',$user_info); 
} 

在視圖我有這樣chart.js之:

<?php 
    $data = array(
     'Jan' => array(33), 
     'Feb' => array(32), 
     'Mar' => array(12) 
    ); 
?> 

{!! app()->chartbar->render("BarChart", $data) !!} 

我怎樣才能控制器的數組轉換的格式需要JS圖表?

編輯

現在,我收到下面的格式,圖形顯示數字1,2,3但cant't打印圖形的線。

array(3) { [1]=> int(35) [2]=> int(20) [3]=> int(35) } 

回答

0

在你的控制器,你叫return view('admin.main')->with('userInfo',$user_info);

with('userInfo',$user_info)設置一個$userInfo變量與$ USER_INFO內容視圖,所以只是這樣的事情應該做的伎倆

{!! app()->chartbar->render("BarChart", $userInfo) !!} 

編輯:我認爲$ user_info已經是正確的格式,但你不知道如何顯示它。閱讀您的意見,我更好地瞭解您的需求。 我不知道哪個數據格式chartJS和你想要顯示什麼。展望$數據例如,你的數據庫查詢,我想你想顯示格式爲「ROLE_ID」數據=> COUNT(*) 因此,在這種情況下,我會做一些像

$userArray = array(); 
foreach($user_info as $row) { 
    $userArray[$row->role_id] = $row->total; 
} 
return view('admin.main')->with('userInfo',$userArray); 
+0

是的,我以前用這個,圖形不顯示任何東西:/ – jc1992

+0

見的編輯,我沒有正確地理解你的問題 – gbalduzzi

+0

我編輯的問題,我收到的格式是在編輯@gbalduzzi – jc1992

0

看起來像你需要把數據以正確的格式:

public function getMainAdminBackend() { 
    $user_info = \DB::table('users') 
        ->select('role_id', \DB::raw('count(*) as total')) 
        ->groupBy('role_id') 
        ->get(); 

    $data = []; 

    if ($user_info) { 
     foreach ($user_info as $month => $value) { 
      $data[date("M", mktime(0, 0, 0, $month, 1, 0))] = [$value]; 
     } 
    } 

    return view('admin.main')->with('userInfo', $data); 
}