php - Laravel/Eloquent - 渴望加载隐藏/可见属性

标签 php laravel eloquent

当使用 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 模型上动态设置 $visible 属性,除了让示例 2 起作用之外,我没有看到其他解决方案。但是如何呢?

最佳答案

由于 $visible 是在实例级别设置的(即它不是在同一类型的所有模型之间共享的静态变量),不 - 没有更好的方法来做到这一点。

关于php - Laravel/Eloquent - 渴望加载隐藏/可见属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16917051/

相关文章:

php - 如何在 PayPal 订阅按钮上设置开始日期

mysql - Laravel 4 的列值不正确

php - Laravel 另一种附加到模型的方法

php - Laravel Eloquent -- 表中的多条记录插入(具有唯一约束的列)

php - 反斜杠从文件名中消失

php - Laravel 4 - ImageMagick 模块不适用于此 PHP 安装

php - 按权重值对多维数组进行排序

php - 使用 Laravel Query Builder 进行复杂的 MySQL 内连接查询

php - Laravel groupBy 使用 Carbon - 意外地限制了分组数组的长度

php - ORM:友谊/好友关系