Laravel控制器拼接HTML时如何使用URL辅助函数生成正确跳转链接
问题原因
你在控制器里拼接的href="view/'.$row->random.'/'.$row->slug.'"是相对路径,浏览器会自动将其拼接到当前访问页面的URL后缀,所以你在/cat路径下的页面点击时,就会生成/cat/view/random/slug的错误跳转地址。
解决方案
Laravel的url()全局辅助函数和Blade模板中使用的{{ URL() }}能力完全一致,你可以直接在控制器拼接逻辑中调用该函数生成绝对路径,就能得到符合预期的跳转地址。
修改后的控制器代码如下:
public function search (Request $request){ foreach($data as $row){ // 调用url()函数生成完整的绝对路径 $jumpUrl = url('view/'.$row->random.'/'.$row->slug); $output .= ' <tr> <td> <a href="'.$jumpUrl.'"> '.$row->namaproduk.' </a> </td> </tr>'; } }
补充说明:你原代码中商品名称
$row->namaproduk写在了a标签闭合标签的外部,会导致点击商品文字无法触发跳转,上述修改代码已经把商品名称移到了a标签内部。
内容的提问来源于stack exchange,提问作者Haris Priambodo
相关产品推荐
相关产品推荐

