Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dynamic 来自控制器的Laravel动态返回?_Dynamic_Laravel_Crud_Laravel Routing - Fatal编程技术网

Dynamic 来自控制器的Laravel动态返回?

Dynamic 来自控制器的Laravel动态返回?,dynamic,laravel,crud,laravel-routing,Dynamic,Laravel,Crud,Laravel Routing,我需要根据请求的路由从控制器返回不同的视图 例如:在我的应用程序中,我有客户端、设备和活动。所有这些都创建了CRUD,但在某些情况下,我想做“查看客户,删除他的活动并返回到客户视图”之类的事情,但我的campaignsController@delete默认情况下返回到活动 我们的想法不是重写同一个控制器,只是改变返回路线,拉雷维尔对此有什么帮助吗 谢谢Laravel不会控制您应用程序的整个流程。如果您有活动删除路由器: Route::delete('campaign/{id}'); 它又回到了

我需要根据请求的路由从控制器返回不同的视图

例如:在我的应用程序中,我有客户端、设备和活动。所有这些都创建了CRUD,但在某些情况下,我想做“查看客户,删除他的活动并返回到客户视图”之类的事情,但我的campaignsController@delete默认情况下返回到活动

我们的想法不是重写同一个控制器,只是改变返回路线,拉雷维尔对此有什么帮助吗


谢谢

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()的值,并在返回之前进行比较,但我认为这可以达到良好的实践效果。