我正在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中,但是我只是想不出该怎么做。
答案 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}`>