[英]How to pass a VueJS variable into a Laravel blade route
我在 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,但我就是不知道怎么做。
您可以使用反引號嘗試此操作。
它對我有用。 我希望它對你有幫助。
<a :href=`{{ route('admin.edit', '') }}/${item.id}`>
您可以嘗試將id附加到末尾,如下所示:
{{ route('admin.edit') }}/@{{ item.id }}
我猜您正在關注REST URI指南,以便適合您。
使用像這樣
<a href="{{ route('admin.edit') }}?course_id=@{{ item.id }}">Click</a>
你混合了兩個不會像這樣的概念。
刀片模板在服務器端呈現,而vue.js相關標記的部分將在客戶端進行解析(例如“瀏覽器”)。
因此,在刀片表達式中引用item
的屬性將失敗(就像它一樣)。
<a href="{{ route('admin.edit', @{{ item.id }} ) }}"
route(...)
指的是與blade相關的表達式,一個item
應該是你的vue.js應用程序的一部分。
您需要做的是在循環searchResult.group
動態創建用於在vue.js應用程序中編輯資源的鏈接。
你可以通過注入一個“route-template”來編譯你的vue.js應用程序中的ressource並將href屬性綁定到vue.js方法來實現這一點,如下所示:
<tr v-for="item in searchResults.group">
<a v-bind:href="getEditLink(item.id)">Edit</a>
....
然后,依據方法getEditLink(id)
根據item
的給定id和提供的“route”-template組裝實際鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.