2015-04-06 73 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