繁体   English   中英

使用vue.js数组中的传递变量调用laravel {{action(Controller @ method}}

[英]Call laravel {{action(Controller@method}} with passing variable from vue.js array

所以我的观点(使用刀片模板制作)我与href链接直接调用Controller,看起来像:

<a id="@{{user.id}}" href="{{action('Controller@method')}}>update</a>

它工作正常,但现在我需要传递一些额外的数据 ,这些数据取自vue.js数组 ,也应放在弯曲的括号中,如:

<a id="@{{user.id}}" href="{{action('Controller@method', ['user_id' => @{{user.id}}])}}>update</a>

在这里,我开始收到关于意外{符号的消息。 我已经尝试删除@符号,并将此变量放在href引号之外,但它不起作用。 有没有可能解决这个问题?

UPD:我也试过把这个链接放在vue方法中,比如

$.getJSON('{{action("Controller@method", ["user_id" => '+vm.user.id+'])}}')

但在这种情况下字面意思是“vm.user.id”,而不是变量在链接中传递

UPD2:我现在正在尝试传递不在链接中的数据,例如$.getJSON('{{action("Controller@method")}}', {user_id: vm.user.id})

我得到像update?user_id = 123这样的链接,但我需要像update / 123这样的格式

我真的不熟悉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,并且对于PHP {{action("Controller@method")}}没有加载Laravel没有特别的意义。

你可以这样做。 硬编码将从服务器呈现的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);
});

我认为这会导致像这样的URL

<a id='url' href="http://example.com/controller/method/123">update</a> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM