Laravel动态从控制器返回?

时间:2014-05-07 14:52:35

标签: dynamic laravel crud laravel-routing

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

例如:在我的应用程序中我有客户端,设备和广告系列。所有人都创建了CRUD,但在某些情况下我想做“查看客户端,删除他的广告系列并返回客户端视图”,但我的campaignsController @ delete默认返回广告系列。

这个想法不会改写相同的控制器只改变返回路线,Laravel是否有帮助呢?

谢谢

1 个答案:

答案 0 :(得分:0)

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);
    }

}

使用return route选项在这些页面中创建链接:

link_to_route('campaign.delete', 'Delete Campaign', ['id' => $id, 'returnRoute' => 'clients'])