Как отправить данные из моей базы данных в API Google Maps в Laravel - PullRequest
0 голосов
/ 24 октября 2019

Я все еще новичок в laravel и использую API Google Chart, но не знаю, как отправлять данные из моей базы данных.

Вот мой контроллер Admin controller

<?php

namespace App\Http\Controllers;

use App\Role;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class AdminController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */

    public function __construct()
    {
        $this->middleware('auth');
    }


    public function index()
    {
        $user = User::all();

        $data = DB::table('animals')->select(
            DB::raw('type as type'),
            DB::raw('count(*) as number')
            );
        return view('admin.index', compact('user'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //
    }

    /**
     * Display the specified resource.
     *
     * @param User $user
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        $user = User::query()->findOrFail($id);
        return view('admin.show', compact('user'));
    }
    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
    }
}

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

<center>
<head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
        google.charts.load("current", {packages:["corechart"]});
        google.charts.setOnLoadCallback(drawChart);
        function drawChart() {
            var data = google.visualization.arrayToDataTable([
                ['Task', 'Animal Slaughtered'],
                ['Cow',     5],
                ['Goat',      2],
                ['Chicken',  3],
                ['Pork', 2],
            ]);

            var options = {
                title: 'Animal Slaughtered',
                is3D: true,
            };

            var chart = new google.visualization.PieChart(document.getElementById('piechart_3d'));
            chart.draw(data, options);
        }
    </script>
</head>
<body>
<div id="piechart_3d" style="width: 900px; height: 500px;"></div>
</body>
</center>

Любая помощь будет любезно приветствоваться, как я был с утра.

1 Ответ

0 голосов
/ 24 октября 2019

Вы уже отправляете $user вашему представлению в этой строке:

return view('admin.index', compact('user'));

Если вы хотите отправить $data, все, что вам нужно сделать, это:

return view('admin.index', compact('user', 'data'));

На ваш взгляд, обе переменные доступны так:

@php
    var_dump($user, $data);
@endphp

Кстати, сейчас $data - просто построитель запросов. Вы должны использовать метод get(), чтобы иметь коллекцию:

$data = DB::table('animals')->select(
                DB::raw('type as type'),
                DB::raw('count(*) as number')
            )->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...