8

Laravel の Eloquent ORM を使用すると、モデルの $hidden および $visible プロパティを動的に設定できないようです。

例 1: これは動作します:

class User extends Eloquent {
   $this->visible = array('field_name');

   function read() 
   {
      return User::all();
   }
}

例 2: Eloquent クラスの visible プロパティを動的に設定しても機能しません:

class User extends Eloquent {
   function read($visible = array('field_name'))
   {
      $this->visible = $visible; // Also tried: $this->setVisible($visible);

      return User::all();
   }
}

例 3: モデル自体では機能するが、熱心にロードされたモデルでは機能しないソリューション:

class User extends Eloquent {
   function read($visible = array('field_name'))
   {
      $users = User::all();

      return $users->get()->each(function($row) use ($visible) {
         $row->setVisible($visible);
      });
   }
}

Eagerly Loaded Models で $visible プロパティを動的に設定するには、例 2 を機能させる以外に解決策がありません。しかし、どのように?

4

2 に答える 2