【发布时间】:2014-12-09 14:41:38
【问题描述】:
我正在我的应用程序中设置嵌套资源路由。目前,我有
// in app/routes
Route::resource("users.folders", "FolderController");
// in app/controllers/api/v2
class FolderController extends \BaseController {
public function index($userId)
{
return Response::json( Sentry::getUser()->clients()->find($userId)->folders()->with("resources")->get() );
}
public function show($userId, $id)
{
if( $f = Sentry::getUser()->clients()->find($userId)->folders()->with("resources")->find($id) )
{
return Response::json( $f );
}
return Response::json(["status" => "Not Found"], 404);
}
// ...
}
我总是会以同样的方式加载用户,但总是写Sentry::getUser()->clients()->find($userId) 似乎是多余的。有什么方法可以在__construct 函数中加载正确的用户?
我很想做类似的事情
class FolderController extends \BaseController {
public function __construct( $userId )
{
$this->user = Sentry::getUser()->clients()->find($userId);
}
public function index()
{
return Response::json( $this->user->folders()->with("resources")->get() );
}
public function show($id)
{
if( $f = $this->user->folders()->with("resources")->find($id) )
{
return Response::json( $f );
}
return Response::json(["status" => "Not Found"], 404);
}
// ...
}
但这会导致异常。
【问题讨论】:
标签: php rest laravel routing controllers