【发布时间】:2014-04-12 18:35:50
【问题描述】:
我正在尝试获取它,以便任何扩展 base 的控制器都可以访问使用以下方法创建的 User 对象:
(这很好用)
use My\Namespace\Repository;
class FooController extends \BaseController
{
protected $user;
protected $prop;
public function __construct(UserRepository $user)
{
$this->user = $user;
$this->prop = $this->user->getProp();
}
public function index()
{
return View::make('page')->with('userProp', $this->prop);
}
}
但是,我在抽象用户的创建并将属性从 FooController.php 中取出并将其放入 BaseController.php 以便任何扩展 Base 的控制器都可以访问它时遇到了麻烦,如下所示:
class FooController extends \BaseController
{
public function index()
{
return View::make('page')->with('userProp', $this->prop);
}
}
谢谢。
【问题讨论】:
-
您是否使用Auth 类来处理安全问题?如果是这样,您应该能够在任何地方虚拟地访问当前用户,使用:
Auth::user(). -
Rubens:是的,我试图抽象出最低限度。我不允许所有数据返回,在模型中 getProp() 将结果限制为该用户。
标签: inheritance laravel controller repository-pattern