我需要根据请求的路由从控制器返回不同的视图。
例如:在我的应用程序中我有客户端,设备和广告系列。所有人都创建了CRUD,但在某些情况下我想做“查看客户端,删除他的广告系列并返回客户端视图”,但我的campaignsController @ delete默认返回广告系列。
这个想法不会改写相同的控制器只改变返回路线,Laravel是否有帮助呢?
谢谢
答案 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'])