【问题标题】:Call laravel {{action(Controller@method}} with passing variable from vue.js array调用 laravel {{action(Controller@method}} 并从 vue.js 数组传递变量
【发布时间】:2016-09-09 08:56:57
【问题描述】:

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

<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>

在这里,我开始收到关于unexpected { symbol 的消息。我试过删除@符号,并将这个变量放在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 这样的格式

【问题讨论】:

    标签: javascript php laravel blade vue.js


    【解决方案1】:

    我真的不熟悉 vue.js,但一般来说 PHP 会在服务器上执行,而 javaScript 会在客户端上执行。所以第一行

    <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> 
    

    【讨论】:

    • 很遗憾,这不是我需要的,但还是谢谢你。我现在正在尝试传递不在链接中的数据,例如$.getJSON('{{action("Controller@method")}}', {user_id: vm.user.id}),并且我正在获取像 update?user_id=123 这样的链接,但我需要像 update/123这样的格式>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    相关资源
    最近更新 更多