laravel 5 中的负载控制器
Load controllers in laravel 5
我正在开发基于 laravel 5 的应用程序。
我希望我的页面 url 是任何东西,并根据我从 cms 控制面板附加的控制器管理不同的页面。
在我的 routes.php 文件中我有这样的代码
Route::get('{slug}/{params?}', 'site\PagesController@getPage')->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);
}
}
}
当我从被调用的控制器方法 (show) 中转储数据时它正在工作,但该方法没有 return 值。例如,如果我执行 dd($item) 它会显示正确的数据,但 return $item 不起作用。
可能是什么问题?
您对更好的解决方案的建议也将受到高度赞赏:)
谢谢!
所以你应该return值:)
return \App::make(…);
顺便说一句。 \App::abort(404);
可以用别名代替:abort(404);
我正在开发基于 laravel 5 的应用程序。
我希望我的页面 url 是任何东西,并根据我从 cms 控制面板附加的控制器管理不同的页面。
在我的 routes.php 文件中我有这样的代码
Route::get('{slug}/{params?}', 'site\PagesController@getPage')->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);
}
}
}
当我从被调用的控制器方法 (show) 中转储数据时它正在工作,但该方法没有 return 值。例如,如果我执行 dd($item) 它会显示正确的数据,但 return $item 不起作用。 可能是什么问题?
您对更好的解决方案的建议也将受到高度赞赏:)
谢谢!
所以你应该return值:)
return \App::make(…);
顺便说一句。 \App::abort(404);
可以用别名代替:abort(404);