Javascript 如何在Laravel中将变量从脚本传递到控制器

Javascript 如何在Laravel中将变量从脚本传递到控制器,javascript,php,laravel,Javascript,Php,Laravel,脚本中的变量current_restroom_id无法传递给Laravel中的控制器 console.log('{{HomeController::getTrendingIssue('1',current_restroom_id)}}'); // but this is not passing script variable value. 请帮助解决此问题 以下是刀片文件中的相关代码: <div class="p-t-20"> <div class="ro

脚本中的变量current_restroom_id无法传递给Laravel中的控制器

console.log('{{HomeController::getTrendingIssue('1',current_restroom_id)}}'); 
// but this is not passing script variable value. 
请帮助解决此问题

以下是刀片文件中的相关代码:

<div class="p-t-20">
        <div class="row">
            <div class="col s12">

                <style>
                    #chartdiv3 {
                        width: 100%;
                        height: 500px;
                    }
                </style>

                <!-- Chart code -->
                <script>

                var current_restroom_id = '14';

                am4core.ready(function() {

                // Themes begin
                am4core.useTheme(am4themes_animated);
                // Themes end

                var chart = am4core.create("chartdiv3", am4charts.PieChart3D);
                chart.hiddenState.properties.opacity = 0; // this creates initial fade-in

                console.log('{{HomeController::getTrendingIssue('1', '14')}}'); // this works fine            console.log('{{HomeController::getTrendingIssue('1',current_restroom_id)}}'); // but this is not passing script variable value.
                console.log(current_restroom_id); // This prints 14 in console

                chart.data = [
                    {
                    "issues"    :'{{HomeController::getIssueName('1')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('1', current_restroom_id)}}'
                    },
                    {
                    "issues"    :'{{HomeController::getIssueName('2')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('2', current_restroom_id)}}'
                    },
                    {
                    "issues"    :'{{HomeController::getIssueName('3')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('3', current_restroom_id)}}'
                    },
                    {
                    "issues"    :'{{HomeController::getIssueName('4')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('4', current_restroom_id)}}'
                    },
                    {
                    "issues"    :'{{HomeController::getIssueName('5')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('5', current_restroom_id)}}'
                    },
                    {
                    "issues"    :'{{HomeController::getIssueName('6')}}',
                    "dislikes"  :'{{HomeController::getTrendingIssue('6', current_restroom_id)}}'
                    }
                ];
                </script>
                <div id="chartdiv3"></div>
            </div>
        </div>
    </div>

不要从刀片视图静态调用控制器方法

您应该通过控制器将变量传递给视图

不要从控制器查询mysql。这就是模型。您应该使用mysql get-via模型,并且必须从控制器调用它

家庭控制器:

public function index()
{
   $restroom_id = 123; // for example
   $trendingIssue = DB::table('ticket_manages')
                    ->where(['ticket_manages.issue_id' => $issue_id, 'restroom_id' => $restroom_id])
                    ->count();
   return view('home', compact('trendingIssue'));
}
他认为:

{{$trendingIssue}}
但是你试图通过javascript获取。不能直接从JavaScript调用PHP。如果您想动态地完成它,就必须使用AJAX

            "dislikes"  :'{{HomeController::getTrendingIssue('1', current_restroom_id)}}'

它永远不会工作,因为您无法将JS变量传递给PHP。PHP代码在javascript运行客户端之前运行服务器端。此PHP代码将尝试使用当前的\u restroom\u id const变量,该变量不存在。

请更好地解释您试图执行的操作,因为我无法理解您的操作problem@GiacomoM正如帖子所说,我试图将当前的厕所id传递给控制器,但是“{HomeController::getTrendingIssue'1',当前厕所id}”'无法从脚本中识别变量current_restroom_id。您是说它没有意义:您希望将一个变量从模板文件传递到控制器,但laravel在相反的方面工作。从控制器到模板文件。
            "dislikes"  :'{{HomeController::getTrendingIssue('1', current_restroom_id)}}'