Dynamic 来自控制器的Laravel动态返回?
我需要根据请求的路由从控制器返回不同的视图 例如:在我的应用程序中,我有客户端、设备和活动。所有这些都创建了CRUD,但在某些情况下,我想做“查看客户,删除他的活动并返回到客户视图”之类的事情,但我的campaignsController@delete默认情况下返回到活动 我们的想法不是重写同一个控制器,只是改变返回路线,拉雷维尔对此有什么帮助吗Dynamic 来自控制器的Laravel动态返回?,dynamic,laravel,crud,laravel-routing,Dynamic,Laravel,Crud,Laravel Routing,我需要根据请求的路由从控制器返回不同的视图 例如:在我的应用程序中,我有客户端、设备和活动。所有这些都创建了CRUD,但在某些情况下,我想做“查看客户,删除他的活动并返回到客户视图”之类的事情,但我的campaignsController@delete默认情况下返回到活动 我们的想法不是重写同一个控制器,只是改变返回路线,拉雷维尔对此有什么帮助吗 谢谢Laravel不会控制您应用程序的整个流程。如果您有活动删除路由器: Route::delete('campaign/{id}'); 它又回到了
谢谢Laravel不会控制您应用程序的整个流程。如果您有活动删除路由器:
Route::delete('campaign/{id}');
它又回到了竞选活动中
class CampaignController extends Controller {
public function delete($id)
{
$c = Campaign::find($id);
$c->delete();
return Redirect::route('campaigns');
}
}
你将不得不欺骗你的路线,让它去任何你需要的地方,应该有几十种方法,这是一个非常简单的方法:
Route::delete('campaign/{id}/{returnRoute?}');
class CampaignController extends Controller {
public function delete($id, $returnRoute = null)
{
$returnRoute = $returnRoute ?: 'campaigns';
$c = Campaign::find($id);
$c->delete();
return Redirect::route($returnRoute);
}
}
并使用返回路线选项在这些页面中创建链接:
link_to_route('campaign.delete', 'Delete Campaign', ['id' => $id, 'returnRoute' => 'clients'])
你能分享一些代码吗?相关的路由器和控制器方法会有所帮助。如果没有看到一些示例,很难提供帮助,但是您可以使用
Route::uri()
,它将返回用户所在的uri。你可以用它来找出你需要重定向到什么。我不确定我是否完全理解。如果你想让控制员做些不同的事情……改变回报?@Antonio Carlos Ribeiro用了一个完美的例子来说明他的代码。嗨,首先感谢你的回复。我认为另一种解决方案是访问Request::fullUrl()的值,并在返回之前进行比较,但我认为这可以达到良好的实践效果。