如何将VueJS变量传递到Laravel刀片路由

时间:2019-03-21 12:05:46

标签: php laravel vue.js

我正在VueJS中遍历JSON数组并将每个项目输出到屏幕,但是我需要创建到资源控制器的链接/路由,并为每行返回ID,如下所示:

<tr v-for="item in searchResults.group">
    <td>
        <a href="{{ route('admin.edit', @{{ item.id }} ) }}"><button type="button" class="btn btn-info btn-sm">Edit</button></a>

因此,我尝试像@{{ item.id }}一样将变量放入路由,但收到错误消息:

syntax error, unexpected '{' (View: /application/resources/views/admin/edit.blade.php)

我这样做的方法显然不是正确的方法,但是我在文档中找不到任何实现此目的的方法。


编辑:

对此进行进一步的输入。路由功能需要第二个参数,在这种情况下,是要编辑的项目的ID。在纯PHP / Blade中,我有此功能,并且可以正常工作:

<a href="{{ route('admin.edit', $item->id ) }}"><button type="button" class="btn btn-info btn-sm">Reduce</button></a>

对于动态搜索页面,我需要以某种方式将第二个参数从vuejs变量传递到Blade / php中,但是我只是想不出该怎么做。

4 个答案:

答案 0 :(得分:0)

您可以尝试将id附加到末尾,如下所示:

{{ route('admin.edit') }}/@{{ item.id }}

我猜您正在遵循REST URI指南,这样对您有用。

答案 1 :(得分:0)

像这样使用

 <a href="{{ route('admin.edit') }}?course_id=@{{ item.id }}">Click</a>

答案 2 :(得分:0)

您正在混合两个不会像这样的概念。

刀片模板是在服务器端呈现的,而与vue.js相关的标记的部分将在客户端(例如“浏览器”)进行解析。

因此,在刀片表达式中引用item的属性将失败(确实如此)。

<a href="{{ route('admin.edit', @{{ item.id }} ) }}"

route(...)是与刀片相关的表达式,item应该是vue.js应用程序的一部分。

您需要做的是在循环searchResult.group后动态创建链接,以在vue.js应用程序中编辑资源。

您可以通过在vue.js应用程序中注入用于编辑资源的“路由模板”并将href属性绑定到vue.js方法来实现此目的,如下所示:

<tr v-for="item in searchResults.group">
    <a v-bind:href="getEditLink(item.id)">Edit</a>
....

相应的方法getEditLink(id)然后根据给定的item id和所提供的“ route”模板来组装实际链接。

答案 3 :(得分:0)

您可以尝试使用反引号。

它对我有用。希望对你有帮助。

<a :href=`{{ route('admin.edit', '') }}/${item.id}`>