2016-03-10 41 views
1

我在一個站點中有多個設計,所以我需要做的是使用正確的設計模板提供特定頁面。在這種情況下,我試圖給404正確的主佈局。Laravel中的多個404錯誤頁面 - 更改佈局

我目前正在處理以下內容,但是在刀片式服務器中並不是要走的路,所以我可能會迷失方向。

我搶引薦,找到該文件夾​​,併發出正確的佈局:

$referer = Request::referer(); 

if (strpos($referer,'ext') !== false) { 
    echo "@extends('layouts.ext_2.master')"; 
} else { 
    echo "@extends('layouts.master')"; 
} 

路線:

App::missing(function($exception) { 
    return Response::view('error-404', array(), 404); 
}); 

回答

1

這是更好地爲您在您的控制器進行處理並返回不同的看法每個條件:

$referer = Request::referer(); 

if (strpos($referer,'ext') !== false) { 
    return view('layouts.ext_2.master'); 
} else { 
    return view('layouts.master'); 
} 

如果由於某種原因,你想擁有的條件邏輯一個模板,你可以只通過可變的觀點,我認爲這是更安全:

$referer = Request::referer(); 

$layout = (strpos($referer,'ext') ? 'layouts.ext_2.master' : 'layouts.master'; 

    return view('main.view', compact('layout')); 
} 

並在視圖:

@include($layout) 
+0

這是有道理的,但將第二個選項仍然走在控制器或在路線?我已更新我的問題以包含我的錯誤路線。 – Klav

+0

如果需要,可以在路由中使用某些邏輯(在'return'子句之前的函數內部)。 –