Welche Rolle spielt $hidden im Eloquent ORM von Laravel?
黄舟
黄舟 2017-05-16 16:48:27
0
3
477

Wofür wird $hidden verwendet? Am besten geben Sie ein Beispiel zur Erklärung

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

Antworte allen (3)
巴扎黑

文档写的很明白了 转换成数组或 JSON 时隐藏属性

有时您可能想要限制能出现在数组或 JSON 格式的属性数据,比如密码字段。只要在模型里增加 hidden 属性即可

class User extends Model { protected $hidden = ['password']; } $user = user::find($userId); dump($user);//里面是木有password字段的
    大家讲道理

    Sometimes you may wish to limit the attributes that are included in your model's array or JSON form, such as passwords. To do so, add a hidden property definition to your model

    class User extends Model { protected $hidden = ['password']; }
      PHPzhong

      可以隐藏Model查询后结果toArray()后的任意内容,基本用法上面已经有人讲了,我来说点平时用到的稍微高级的用法
      1 隐藏某个字段。
      2 你可以隐藏查询是通过with方法获取的关系。
      3 还可以与$appends连用改变返回数据格式。

      有一个User表还有一个UserInfo表,查询时需要User的所以字段+UserInfo中的某个字段ClomnX。但是又不希望返回整个UserInfo的信息。(当然可以用简单点的方式在控制器做个查询中处理,我这里只是举个用Model统一处理的方式)

      class User extends Model { protected $hidden = ['userInfo']; protected $appedns = ['ClomnX'] //声明一个关系,user和userInfo是一对一的关系 public function userInfo() { return $this->hasOne(UserInfo::class); } public function getClomnXAttribute() { //判断使用了with方法关联了UserInfo。 if (isset($this->getRelations()[UserInfo])) { return $this->UserInfo->ClomnX; } else return null; }
      class TestController { $user = user::with('userInfo')->find($userId); dump($user->toArray());//返回中没有UserInfo的数组信息,只有其中一个字段。 }

      这只是简单的例子,还可以通过该方法实现更复杂的格式操作。抛砖引玉了。

        Neueste Downloads
        Mehr>
        Web-Effekte
        Quellcode der Website
        Website-Materialien
        Frontend-Vorlage
        Über uns Haftungsausschluss Sitemap
        Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!