亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Laravel - 從 2 個不同的表獲取數據以顯示為谷歌餅圖

Laravel - 從 2 個不同的表獲取數據以顯示為谷歌餅圖

PHP
倚天杖 2023-07-30 13:35:23
我想顯示一個餅圖,其中包含基于預訂狀態的預訂數量。但問題是我的預訂表僅包含預訂狀態 ID。當我嘗試獲取數據時,它返回錯誤,其中“餅圖應該有字符串類型的第一列”。預訂狀態的名稱位于另一個不同的表上。我對 Laravel 框架很陌生,所以有人可以給我任何從 2 個不同表獲取數據的指南嗎?這是我的控制器<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use DB;class LaravelGoogleGraph extends Controller{    function index()    {     $data = DB::table('booking')       ->select(        DB::raw('base_booking_status_id as status'),        DB::raw('count(*) as booking_id'))       ->groupBy('status')       ->get();     $array[] = ['Status', 'Total'];     foreach($data as $key => $value)     {      $array[++$key] = [$value->status, $value->booking_id];     }     return view('google_pie_chart')->with('status', json_encode($array));    }}?>這是我的刀片<!DOCTYPE html><html> <head>  <title>Make Google Pie Chart in Laravel</title>  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>  <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />  <style type="text/css">   .box{    width:800px;    margin:0 auto;   }  </style>  <script type="text/javascript">   var analytics = <?php echo $status; ?>   google.charts.load('current', {'packages':['corechart']});   google.charts.setOnLoadCallback(drawChart);   function drawChart()   {    var data = google.visualization.arrayToDataTable(analytics);    var options = {     title : 'Booking Status'    };    var chart = new google.visualization.PieChart(document.getElementById('pie_chart'));    chart.draw(data, options);   }  </script> </head> <body>  <br />  <div class="container">   <h3 align="center">Booking Report</h3><br />      <div class="panel panel-default">    <div class="panel-heading">     <h3 class="panel-title">Booking Status</h3>    </div>    <div class="panel-body" align="center">     <div id="pie_chart" style="width:750px; height:450px;">     </div>    </div>   </div>     </div> </body></html>
查看完整描述

1 回答

?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

您需要在查詢中進行聯接。像這樣的東西:


$data = DB::table('booking')

? ?->select([

? ? ? 'booking.base_booking_status_id as status_id',

? ? ? 'base_booking_status.name as status_name',

? ? ? 'booking.id as booking_id',

? ? ])

? ? ->leftJoin('base_booking_status', 'booking.base_booking_status_id', '=', 'base_booking_status.id')

? ? ->groupBy('booking.status')

? ? ->get();

我對狀態表使用了名稱“base_booking_status”。您將需要更新它以匹配選擇列以及連接的第一個和第三個參數中另一個表的實際名稱。您還需要更新要顯示的列的名稱,我在此處將其稱為“名稱”。

查看完整回答
反對 回復 2023-07-30
  • 1 回答
  • 0 關注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號