所以我的观点(使用Blade模板制作)我有直接调用Controller的href链接,如下所示:
fetchall_arrayref()
它工作正常,但现在我需要传递一些额外的数据,这是从vue.js数组中获取的,也应该放在弯曲的大括号中,像:
<a id="@{{user.id}}" href="{{action('Controller@method')}}>update</a>
在这里,我开始收到关于意外{符号的消息。我尝试删除@符号,并将此变量放在href引号之外,但它没有用。有没有可能解决这个问题?
UPD:我也试过把这个链接放在vue方法中,比如
<a id="@{{user.id}}" href="{{action('Controller@method', ['user_id' => @{{user.id}}])}}>update</a>
但在这种情况下字面上&#34; vm.user.id&#34;,而不是变量在链接中传递
UPD2:
我现在正在尝试传递不在链接中的数据,例如$.getJSON('{{action("Controller@method", ["user_id" => '+vm.user.id+'])}}')
我正在获取更新?user_id = 123 等链接,但我需要更新/ 123 等格式
答案 0 :(得分:0)
我真的不熟悉vue.js,但通常PHP会在服务器上执行,而java在客户端上执行。所以第一行
<a id="@{{user.id}}" href="{{action('Controller@method', ['user_id' => @{{user.id}}])}}>update</a>
这部分@{{user.id}}
PHP无法理解,因为它是javaScript表示法,所以你得到某种语法错误。
第二行
$.getJSON('{{action("Controller@method", ["user_id" => '+vm.user.id+'])}}')
我认为这无法执行,因为这不会加载Laravel,而且如果没有加载Laravel,PHP {{action("Controller@method")}}
没有特别的意义。
你可以这样做。硬编码将从服务器呈现的URL的一部分,并在其转到客户端时添加其余的URL。
例如,您可以让服务器生成如下URL:
<a id='url' href="http://example.com/controller/method/">update</a>
然后在客户端上有某种javascript函数,当页面加载时会向其附加vm.user.id
$(document).ready(function(){
$('#url').attr('href', $('#url').attr('href') + vm.user.id);
});
我认为这会导致像这样的网址
<a id='url' href="http://example.com/controller/method/123">update</a>