我正在使用spatie / browsershot 3.24运行PHP Laravel 5.5。*,从从路由生成的URL中提取HTML时遇到了问题。
代码:
$url = route('pdfs.plans.results', [
'lang' => $culture->code,
'id' => $id,
'user_id' => \Auth::user()->id,
'pdf-token' => $token->token,
]);
现在,我只想添加此路由生成的原始html:
dd(Browsershot::url($url)->bodyHtml());
但是,这失败了,这似乎是由于url字符串中的查询参数引起的
示例url:http://localhost/pdf/plans/results/share?lang=en_US&id=17&user_id=8&pdf-token=PEvWJ7MB7sgQWM9AUfciceL4zNvZrLaSeemGf5J4kGzfOKvaMe8L0FTf32Da
一旦它到达第二个参数'&id=17
',它就会中断声明:
'id' is not recognized as an internal or external command
这告诉我NodeJS发生了什么变化,我猜想&符正在抛出它,并且我想将另一个命令传递给控制台,但是我不知道该如何解决。
有没有更好的方法来传递URL,或者是一种替代/更好的方法来从Laravel刀片(运行VueJS)中提取呈现的HTML,然后将其用于PDF生成或其他业务需求?
谢谢!
答案 0 :(得分:1)
也许Windows仅与相关问题有关,因为我还没有在Linux上尝试过,但是我逃避了&并且现在一切正常。
$url = str_replace('&', '^&', $url)