2015-04-06 57 views
0

我正在研究基於laravel 5的應用程序。 我希望我的網頁url是任何東西,並根據控制器管理不同的頁面,我通過cms控制面板附加了這些控制器。
在我的routes.php文件的文件我也有這樣的代碼laravel 5中的加載控制器

Route::get('{slug}/{params?}', 'site\[email protected]')->where('params', '(.*)'); 

我PagesController看起來像這樣

<?php namespace App\Http\Controllers\site; 

use App\Http\Controllers\Controller; 

use App\Pages; 

class PagesController extends Controller { 



public function getPage($slug, $params = null) 
{ 

    if($params) 
    { 


     // dd($params); 
    } 

    $page = PAGES::whereSlug('/'.$slug)->first(); 

    if(count($page)) { 
     \App::make('App\Http\Controllers\site\\'.$page->controller)->show($page->id); 
    } 
    else { 
     \App::abort(404); 
    } 

} 

}

它的工作時,我傾倒從所謂的控制器方法的數據(節目) ,但該方法不返回該值。例如,如果我執行dd($ item),它會顯示正確的數據,但返回$ item不起作用。 有什麼問題?

你一個更好的解決方案建議將高度讚賞也:)

謝謝!

+0

如果你滿意我的回答你能接受它:) – 2015-04-06 14:08:34

回答

4

所以,你應該返回值:)

return \App::make(…); 

順便說一句。 \App::abort(404);可以通過別名來代替:abort(404);

+3

而對於'\ APP ::讓(」 ...‘)'有'應用程序(’... ')';) – lukasgeiter 2015-04-06 13:54:17

+0

非常感謝! :)) – SomethingElse 2015-04-06 13:56:21

+0

@MariG不客氣! – 2015-04-06 13:57:35