模型加载后 Laravel 调用方法

Bra*_*eed 5 php laravel eloquent

我正在尝试检查模型的构造函数是否允许当前经过身份验证的用户访问给定的模型,但我发现构造函数上下文中的 $this 为空。Laravel 中分配给模型的属性在哪里?加载所有属性后我应该如何调用方法?

public function __construct(array $attributes = [])
{
    parent::__construct($attributes);
    var_dump($this); // empty model
    $this->checkAccessible();

}
Run Code Online (Sandbox Code Playgroud)

提前欢呼

kam*_*bar 0

您可以使用控制器过滤器检查用户是否登录,然后调用任何模型函数。

public function __construct(array $attributes = []){     
  $this->beforeFilter('auth', array('except' => 'login')); //login route

   if(Auth::user()){
        $user_id = Auth::user()->user_id;
        $model = new Model($attributes);
        //$model = User::find($user_id);
   }
 }
Run Code Online (Sandbox Code Playgroud)

从构造函数将属性绑定到模型

模型.php

public function __construct(array $attributes = array())
{
    $this->setRawAttributes($attributes, true);
    parent::__construct($attributes);
}
Run Code Online (Sandbox Code Playgroud)