我已经尝试了一段时间才能让laravel路由到我的控制器操作。 我不确定在laravel框架中执行此操作的最佳方法。
我在脑海中想象的是这样的。
我有一个路由设置链接到我的控制器操作。所以当我输入domain.com/Home/Profile 它将调用HomeController的配置文件操作。这将进行一些处理并在页面上显示视图。 (比如mvc4)
我可能会以错误的方式解决这个问题,但我只是想避免为每个视图制作一条路线。在解决这个问题的正确方法之后或者作为标准实践的laravel开发人员做的事情之后我会更多,因为每个视图都有一条路线感觉很奇怪。
到目前为止,这是我的代码:routes.php
Route::get('/', 'HomeController@index');
Route::any('/{controller}/{action?}', function ($controller, $action = 'index')
{
$class = $controller.'Controller';
$controller = new $class()
return $controller->{$action}();
});
HomeController中:
class HomeController extends BaseController
{
protected $layout = 'layouts.master';
public function index()
{
$this->layout->content = View::make('index');
return View::make('index');
}
public function profile()
{
$this->layout->content = View::make('profile');
}
}
感谢您提前提供任何帮助。
答案 0 :(得分:1)
找到适合我的答案。这是Restful Controllers
我用这行注册了控制器
Route::get('/', 'HomeController@index');
Route::controller('/', 'HomeController');
并将我的控制器操作更改为getProfile()
答案 1 :(得分:0)
http://laravel.com/docs/controllers#resource-controllers
Route::get('home/profile');
Route::resource('home', 'HomeController');
答案 2 :(得分:0)
此代码对我有用
$api->any('order_manage/{action?}', function ($action = 'index'){
$app = app();
$namespace = 'App\Http\Controllers';
$controller = $app->make($namespace.'\ProjectOrderController');
return $controller->callAction($action,[request()]);
});