使用Laravel中的刀片模板在php标记内打印JavaScript变量值

假设这是一个JS代码,我想打印id的值。 这里的id是一个变量,其值接收到jq函数。

 function follow_or_unfollow(id,action){ myUrl = "{{ action('FollowsController@show', 'id') }}" ; } 

如果我们使用'id' ,它将显示id字符串。

PS。 这里{{正在使用,因为它意味着刀片模板中的PHP代码。

现在我需要在php代码中打印脚本变量。

我担心你所要求的是不可能的。 JavaScript的简单原因是客户端,PHP是服务器端。

您始终可以将PHP代码放在JavaScript中,因为它只会在那里回显,并且不会立即运行。 而如果您想在PHP中使用JavaScript变量,那意味着您正在尝试访问在服务器处理请求时甚至不存在的变量。

更新

有一个解决方法。 您可以将JS中所需的数据作为URL中的参数传递,然后使用$_GET在PHP中获取这些值。

可能已经晚了,但我想我有解决方案。 你的代码

 myUrl = "{{ action('FollowsController@show', 'id') }}" ; 

在javascript块内。 因此,刀片解析器使用括号作为javascript对象而不是刀片变量 。 所以你不能在脚本块中使用任何PHP变量。 在我的解决方案中,我会用以下代码替换

 myUrl = "@include("public.default.js_values.myUrl")" ; 

然后创建该模板文件

 (in your views folder)/public/default/js_values/myUrl.blade.php 

并在该文件中添加一行

 {{ action('FollowsController@show', 'id') }} 

这样刀片解析器将包含myUrl.blade.php上的内容。 在文件中将正确解析括号中的变量,并将php变量的值(在您的情况下为方法)返回到javascript。

我已经在类似的情况下对此进行了测试并且它有效

只需使用{!! $ vars !!}。

 var link = {!! "'".url('string/'.$vars.'/string')."'" !!};