php - 如何使用 Laravel/PHP 修改/设置浏览器地址栏中的 URL?
问题描述
目标
根据数据库搜索结果设置/修改浏览器地址栏中的url。
描述
我尝试使用 Laravel开发一个小型多语言 CMS(存储库)。因此,我需要根据用户输入修改地址栏中的 url。例如,用户输入www.example.com/page1
并且在 cms 的数据库中找不到此页面/url,我想重定向到www.example.com/404
.
其他用例:用户输入www.example.com/contact
,找到 url,然后我想在浏览器地址栏中显示 url,如下所示:www.example.com/en/contact
.
代码:目前我有一个PageDataGetter
类(repo 链接),它搜索数据并返回带有所需数据(或 404 页面数据)的 DTO。然后我收集数据。
页面汇编器
public function assemble(
PageDataGetterResponseTransfer $pageDataGetterResponseTransfer
): PageAssemblerResponseTransfer {
$pageAssemblerResponseTransfer = new PageAssemblerResponseTransfer();
$pageAssemblerResponseTransfer->setPage(
response()
->view(
TemplateInterface::VIEW_PREFIX . $pageDataGetterResponseTransfer->getViewString(),
$pageDataGetterResponseTransfer->getPageDataTransfer()->getPageData(),
$pageDataGetterResponseTransfer->getStatusCode()
)
->header('Location', $pageDataGetterResponseTransfer->getUrl())
);
return $pageAssemblerResponseTransfer;
}
在控制器中,我只是尝试像这样返回响应,但它不会更改浏览器地址栏中的 url。
前端控制器
$pageAssemblerResponseTransfer = $pageAssembler->assemble($pageDataGetterResponseTransfer);
return $pageAssemblerResponseTransfer->getPage();
至少我不确定,如果这是正确的方向,我正在努力实现我的目标。
我也尝试通过重定向来解决它,但我不知道如何将字符串传递给视图/刀片,我还需要动态设置状态代码的可能性。
也许有人对我有提示?
解决方案
推荐阅读
- node.js - axios.all 任何调用都成功不要错误
- visual-studio-2017 - 防止添加新的 csproj 将 AnyCPU 添加回解决方案文件
- image - 如何将 URL 转换为 SVG 图像的 HREF
- php - 如何在 php 中获取此 XML 的值和属性?
- sql - Apache spark jdbc连接到apache钻错误
- php - Ajax 和 php 的响应不正确
- python - Python在多个编号的列上应用函数
- rest - ReDoc + SpringFox Swagger2 + 附加模型
- excel - VBA根据条件计算不同的日期
- regex - URL 正则表达式建议