簡體   English   中英

如何將 VueJS 變量傳遞到 Laravel 刀片路由中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM