按钮重定向到错误路径

问题描述:

我正在使用我的刀片视图中的链接按钮。代码如下:按钮重定向到错误路径

<a href="conclusion" class='btn btn-default btn-sm'>End Case</a> 

该页面的URL在此链接按钮:

http://localhost/cases/137/responses/30 

我的按钮的结果应该是

http://localhost/cases/137/responses/30/conclusion 

但它重定向到

http://localhost/cases/137/responses/conclusion 

我的laravel ro ute的定义是:

get('/cases/{id}/responses/{respId}/conclusion', '[email protected]'); 

它有什么问题呢?我该怎么做?

+0

结论页面的laravel路径定义在哪里?你用laravel标记它,但你没有提供与它相关的代码。 – Luceos

+1

你是否在讨论'get('/ cases/{id}/responses/{respId}/conclusion','HomeController @ conclusion');'在route.php中? –

生成URL的保存方式是始终使用Laravels辅助函数。这样您就不会有任何相对URL的问题,因为它始终会生成完整的URL。你的情况action()将是合适的:

<a href="{{ action('[email protected]', [$id, $respId]) }}" class='btn btn-default btn-sm'>End Case</a> 

或者你可以给你的路线名称:

get('/cases/{id}/responses/{respId}/conclusion', [ 
    'as' => 'conclusion', 
    'uses' => '[email protected]' 
]); 

然后:

<a href="{{ route('conclusion', [$id, $respId]) }}" class='btn btn-default btn-sm'>End Case</a> 
+0

我喜欢这个解决方案。但得到的URL 通过'http://本地主机/例/%7Bid%7D /响应/%7BrespId%7D/conclusion' 我想$ ID,并在此URL –

+0

啊,当然值$ respId。那么你可以将它们从控制器传递到视图,或者直接在视图中使用'Route :: input('id')'。 (我更喜欢第一种方式) – lukasgeiter

重定向与当前路径不相关。它相对于index.xxx。我建议你使用完全合格的路径。

的问题是当前的URL指向一个文件,而不是一个文件夹:https://cdivilly.wordpress.com/2014/03/11/why-trailing-slashes-on-uris-are-important/

当使用相对h ref的实际指向当前文件夹中的文档。虽然您当前的网址没有结尾斜杠(/),但它被解释为文档并且相对网址实际上会替换文档名称。

所以在这个时候你指向文件http://localhost/cases/137/responses/中的文件conclusion,因为30也是“只是”该文件夹中的一个文件。

为了解决您的问题,你应该打你的页面文件夹http://localhost/cases/137/responses/30/它允许相对URL的href="conclusion"指向http://localhost/cases/137/responses/30/conclusion

为了确保该工程在laravel,你的路线指向响应应该有一个结束/。更好的解决方案是使用laravel帮助程序函数(如route()action())生成到页面的路径;请参阅http://laravel.com/docs/5.0/helpers#urls