Hướng dẫn laravel pass php variable to javascript file - laravel chuyển biến php vào tệp javascript

Tôi muốn hiển thị trên bảng xếp hạng số lượng sinh viên mới đã đăng ký và số lượng sinh viên trực tuyến mỗi tháng. Tôi đã nhận được dữ liệu nhưng tôi không biết cách truyền dữ liệu vào tệp JS để vẽ biểu đồ đó. Tệp JS của tôi nằm trong thư mục công khai và tôi đã kết nối với tệp JS nhưng tôi không biết cách truyền dữ liệu cho nó.

Bộ điều khiển của tôi để lấy dữ liệu

class DashboardController extends AdminBaseController
{
    public function index [] 
    {
       $month = 1;
       $totalNewStudent = [];
       $totalOnline = [];
       $totalActive = [];
       for[$i = $month; $i < 13; $i++] {
       //count new students
       $newStudents = Member::where['member_type_id',1]- 
       >whereMonth['created_at', $i]->get[];
       $totalNewStudent[$i] = $newStudents->count[]; 

       //students online
       $onlStudents = Member::where['member_type_id',1]- 
       >whereMonth['updated_at', $i]->get[];
       $totalOnline[$i] = $onlStudents->count[]; 

       // count card active
       $act = Order::where['status', "active"]->whereMonth['updated_at', $i]- 
       >get[];
       $totalActive[$i] = $act->count[]; 
       return view['admin.dashboard.index', compact['totalNewStudent','totalOnline','totalActive ']];
      }
    }
}

Xem admin.dashboard.index

Tệp JS

var months = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"];
    Morris.Area[{
        element: 'products-sales',
        data: [{
            month: '2017-01',
            newstudent: 0,
            online: 0,
        }, {
            month: '2017-02',
            newstudent: 240,
            online: 0,
        }, {
            month: '2017-03',
            newstudent: 0,
            online: 0,
        }, {
            month: '2017-04',
            newstudent: 0,
            online: 190,
        }, {
            month: '2017-05',
            newstudent: 0,
            online: 25,
        }, {
            month: '2017-06',
            newstudent: 0,
            online: 150,
        }, {
            month: '2017-07',
            newstudent: 0,
            online: 0,
        },{
            month: '2017-08',
            newstudent: 80,
            online: 0,
        },{
            month: '2017-09',
            newstudent: 0,
            online: 0,
        },{
            month: '2017-10',
            newstudent: 0,
            online: 0,
        },{
            month: '2017-11',
            newstudent: 300,
            online: 0,
        },{
            month: '2017-12',
            newstudent: 0,
            online: 0,
        }],
        xkey: 'month',
        ykeys: ['newstudent', 'online'],
        labels: ['New Student', 'Online'],
        xLabelFormat: function[x] { //  [
'title' => 'Home',
'price' => 20
]]];
}];

Thêm các js :: từ trong quan điểm chào mừng

6


var page_data = {{ Js::from[$page_data] }};

Mở trình duyệt và kiểm tra trang_data trong bảng điều khiển.

2. Sử dụng biến đổi Php Vars thành Gói JavaScript

1. Không có gói: Sử dụng kết xuất JSON

composer require laracasts/utilities

Trong kết xuất Laravel, JSON sẽ được sử dụng để khởi tạo biến JavaScript.

7

'providers' => [
'...',
Laracasts\Utilities\JavaScript\JavaScriptServiceProvider::class,
];

Thí dụ

8

Bây giờ thêm dữ liệu mảng trong tuyến ứng dụng. Mảng trang này chúng ta cần sử dụng làm JavaScript.

Thêm các js :: từ trong quan điểm chào mừng

1

Mở trình duyệt và kiểm tra trang_data trong bảng điều khiển.

9

Cài đặt gói thông qua trình soạn thảo

2

6

3

Thêm gói vào nhà cung cấp

Nếu bạn biết bất kỳ phương pháp thay thế nào khác, hãy chia sẻ chúng trong bình luận.

Cảm ơn bạn đã đọc.

Chơ để biết thêm!

Theo dõi tôi tại Balajidharma.medium.com.balajidharma.medium.com.

Chủ Đề