2016-01-05 22 views
0

控制器I有一個使用重定向到呼叫控制器,其然後顯示的圖中間件。重定向動作在不同的命名空間

public function handle($request, Closure $next) 
{ 
    redirect()->action('Full\Namespace\To\Controller\[email protected]'); 
} 

我也有這個作爲一個路線。當我遵循路線時,視圖顯示正常。當我嘗試使用action重定向並傳遞控制器的名稱空間時,laravel嘗試在基本應用程序中找到控制器。我得到錯誤

Action App\Http\Controllers\Full\Namespace\To\Controller\[email protected] not defined. 

當控制器位於

App\Vendor\Myname\Mypackagename\Controllers\[email protected] 

正確,據我所命名空間我的控制,我可以告訴它該目錄中的其他命名空間的控制器相匹配。這是我嘗試通過操作調用的唯一控制器。

ErrorController.phpApp\Vendor\Myname\Mypackagename\Controllers

namespace Full\Namespace\To\Controller; 

use App\Http\Controllers\Controller; 

class ErrorController extends Controller 
{ 
    public function fourOhThree() 
    { 
     return view('...'); 
    } 
} 

我想我做得不對的,我如何傳遞的命名空間控制器到action方法。

回答

4

嘗試增加在限定名前的「\」。

action('\Full\Namespace\To\Controller\[email protected]') 
+0

嘗試這個。錯誤消失,但控制器不啓動。 – myol

+0

我不知道你說「控制器犯規火」 – lagbox

+0

意思正如重定向似乎並沒有做任何事情。 'ErrorController'內的任何代碼都不會觸發。 ...我現在猜想它是一個不同的問題? – myol