如何在 Javascript Laravel Blade 中编写路由 URL?

Posted

技术标签:

【中文标题】如何在 Javascript Laravel Blade 中编写路由 URL?【英文标题】:How to Write Route URL inside Javascript Laravel Blade? 【发布时间】:2020-03-30 12:24:31 【问题描述】:

这是我的路线,有 2 个参数,

url: ' route('datatable.getaccess', [$room->id_project , $room->id]) ,

如果这样写会显示:xxxxxx?xxxxxx,有 问号 beetwen id_project 到 $id, 如何正确书写?因为那应该是 "/" 斜线

谢谢。

【问题讨论】:

该路线在您的web.php 路线文件中是什么样的? 我想它是完美的。您的route 有一个route parameter,其他值附加为query parameter @kerbholz Route::get('viewroom/id_project/id', 'RoomController@show'); 这样 @PrashantDeshmukh .....对不起,我没有得到你的答案,这是什么意思?我的路线有 2 个参数, route name 在哪里?应该是这样的Route::get('viewroom/id_project/id', 'RoomController@show')->name('datatable.getaccess'); 【参考方案1】:

您可以为 javascript 使用字符串占位符。

<input type="hidden" id="_room_id" value=" $room->id ">
<input type="hidden" id="_room_project_id" value=" $room->id_project ">
let project_id = $('#_room_project_id').val(); // or document.getElementById('_room_project_id').value if you're not using JQuery
let id = $('#_room_id').val();                 // or document.getElementById('_room_id').value if you're not using JQuery
let url = " route('datatable.getaccess', [':project_id', ':id']) ".replace(':project_id', project_id).replace(':id', id);

这看起来不对,但它确实有效,因为我们正在将字符串传递给路由助手(这反过来会产生一个字符串)

route('datatable.getaccess', [':project_id', ':id'])
// 'viewroom/:project_id/:id'

所以

let url = " route('datatable.getaccess', [':project_id', ':id']) ".replace(':project_id', project_id).replace(':id', id);

等价于

let url = "viewroom/:project_id/:id".replace(':project_id', project_id).replace(':id', id);

【讨论】:

这真的帮了我很多忙

以上是关于如何在 Javascript Laravel Blade 中编写路由 URL?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 路由提供包含非刀片(Html)的文件夹? [复制]

为什么说Babel[?be?bl]将推动JavaScript的发展

如何在 laravel 的 javascript 代码中设置路由名称

如何在 Laravel 8 中使用 JavaScript 获取?

Laravel 5.4 - 如何在 javascript 加载之前使 @section 屈服

如何在javascript中使用laravel响应json