如何在 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 获取?