使用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')."'" !!};