下面是我的js代码,它将路由及其参数附加到锚标记中。
var href = "{!! route('ShowUserMainForm', ['RoleID'=>" + row.RoleID + "]) !!}";
var UserColumn = "<td><a href=' " + href + "'><button>Users</button></a></td>";
它提供以下网址
http://localhost:1234/public/system-users/%20+%20row.RoleID%20+%20
我期待以下。
我错过了什么吗?
答案 0 :(得分:8)
没有。的方法:
因为{!! !!}块代码在JavaScript代码之前呈现,因此您需要创建路由然后在{!!之外连接RoleID !!}。
如果 row.RoleID 是json:
var href = "public/system-users/" + row.RoleID
或
var href = "{!! route('ShowUserMainForm') !!}" + row.RoleID;
或
var href = "{!! route('ShowUserMainForm', ['RoleID'=>'']) !!}" + row.RoleID;
答案 1 :(得分:1)
%20
- &gt;空格字符的百分比编码
您看到的是此字符串被指定为RoleID
的值:+ row.RoleID +
。
你在那些外部引号中运行Laravel,所以只需删除JS字符串连接,并直接编写PHP(假设你在服务器端有一个$row
变量):
var href = "{!! route('ShowUserMainForm', ['RoleID'=> $row.RoleID]) !!}";
当Laravel将您的路线渲染到锚标记并构建该HTML(在{!! !!}
内发生的所有内容)时,您正在服务器上运行。当您运行javascript时,您在客户端。您无法以您尝试的方式将数据从客户端发送到服务器。