我在刀片视图中使用了一个链接按钮。代码如下:
<a href="conclusion" class='btn btn-default btn-sm'>End Case</a>
此链接按钮所在页面的网址:
http://localhost/cases/137/responses/30
我的按钮结果应为
http://localhost/cases/137/responses/30/conclusion
但它正在重定向到
http://localhost/cases/137/responses/conclusion
我的laravel路线定义是:
get('/cases/{id}/responses/{respId}/conclusion', 'HomeController@conclusion');
它出了什么问题?我该怎么办?
答案 0 :(得分:0)
重定向与当前路径无关。它相对于index.xxx。我建议您使用完全合格的路径。
答案 1 :(得分:0)
生成URL的保存方式是始终使用Laravels帮助程序函数。这样您就不会遇到相关网址的任何问题,因为它始终会生成完整的网址。在您的情况下action()
是合适的:
<a href="{{ action('HomeController@conclusion', [$id, $respId]) }}" class='btn btn-default btn-sm'>End Case</a>
或者,您可以为您的路线命名:
get('/cases/{id}/responses/{respId}/conclusion', [
'as' => 'conclusion',
'uses' => 'HomeController@conclusion'
]);
然后:
<a href="{{ route('conclusion', [$id, $respId]) }}" class='btn btn-default btn-sm'>End Case</a>
答案 2 :(得分:0)
问题是当前网址指向的是文档,而不是文件夹:https://cdivilly.wordpress.com/2014/03/11/why-trailing-slashes-on-uris-are-important/
使用相对href时,实际上指向当前文件夹中的文档。虽然您当前的网址没有结尾斜杠(/
),但它被解释为文档,而相对网址实际上会替换文档名称。
因此,此时您指向文件夹conclusion
中的文档http://localhost/cases/137/responses/
,因为30
也只是该文件夹中的文档。
为了解决您的问题,您应该将您的网页命名为http://localhost/cases/137/responses/30/
文件夹,该文件夹允许相对网址href="conclusion"
指向http://localhost/cases/137/responses/30/conclusion
为了确保这在laravel中有效,指向响应的路线应该有一个结尾/
。更好的解决方案是使用la route()
和action()
等laravel辅助函数生成到页面的路径;见http://laravel.com/docs/5.0/helpers#urls