cari

Rumah  >  Soal Jawab  >  teks badan

Apakah peranan $hidden dalam ORM Eloquent laravel?

Untuk apa $hidden digunakan? Sebaiknya berikan contoh untuk menerangkan

黄舟黄舟2797 hari yang lalu543

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-16 16:50:27

    Dokumentasi sangat jelas dan atribut disembunyikan apabila menukar kepada tatasusunan atau JSON

    Kadangkala anda mungkin mahu mengehadkan data atribut yang boleh muncul dalam tatasusunan atau format JSON, seperti medan kata laluan. Cuma tambahkan atribut tersembunyi pada model

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

    balas
    0
  • 大家讲道理

    大家讲道理2017-05-16 16:50:27

    Kadangkala anda mungkin ingin mengehadkan atribut yang disertakan dalam tatasusunan model anda atau borang JSON, seperti kata laluan. Untuk berbuat demikian, tambahkan definisi sifat tersembunyi pada model anda

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

    balas
    0
  • PHPz

    PHPz2017-05-16 16:50:27

    Anda boleh menyembunyikan mana-mana kandungan selepas hasil pertanyaan Model toArray(). Penggunaan asas telah diterangkan di atas.
    2 Anda boleh menyembunyikan hubungan yang diperolehi oleh pertanyaan melalui kaedah dengan.
    3 Ia juga boleh digunakan dengan $appends untuk menukar format data pemulangan.
    Sebagai contoh, terdapat jadual Pengguna dan jadual UserInfo Apabila membuat pertanyaan, semua medan Pengguna + medan tertentu ClomnX dalam UserInfo diperlukan. Tetapi saya tidak mahu mengembalikan keseluruhan maklumat UserInfo. (Sudah tentu, ia boleh diproses dengan cara yang lebih mudah dengan membuat pertanyaan dalam pengawal. Saya hanya memberikan contoh pemprosesan bersatu menggunakan 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的数组信息,只有其中一个字段。
    }
    

    Ini hanyalah contoh mudah, operasi format yang lebih kompleks juga boleh dilaksanakan melalui kaedah ini. Ia adalah idea yang baik.

    balas
    0
  • Batalbalas