123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- <?php
-
- namespace Illuminate\Database\Eloquent\Concerns;
-
- trait HidesAttributes
- {
- /**
- * The attributes that should be hidden for serialization.
- *
- * @var array
- */
- protected $hidden = [];
-
- /**
- * The attributes that should be visible in serialization.
- *
- * @var array
- */
- protected $visible = [];
-
- /**
- * Get the hidden attributes for the model.
- *
- * @return array
- */
- public function getHidden()
- {
- return $this->hidden;
- }
-
- /**
- * Set the hidden attributes for the model.
- *
- * @param array $hidden
- * @return $this
- */
- public function setHidden(array $hidden)
- {
- $this->hidden = $hidden;
-
- return $this;
- }
-
- /**
- * Add hidden attributes for the model.
- *
- * @param array|string|null $attributes
- * @return void
- */
- public function addHidden($attributes = null)
- {
- $this->hidden = array_merge(
- $this->hidden, is_array($attributes) ? $attributes : func_get_args()
- );
- }
-
- /**
- * Get the visible attributes for the model.
- *
- * @return array
- */
- public function getVisible()
- {
- return $this->visible;
- }
-
- /**
- * Set the visible attributes for the model.
- *
- * @param array $visible
- * @return $this
- */
- public function setVisible(array $visible)
- {
- $this->visible = $visible;
-
- return $this;
- }
-
- /**
- * Add visible attributes for the model.
- *
- * @param array|string|null $attributes
- * @return void
- */
- public function addVisible($attributes = null)
- {
- $this->visible = array_merge(
- $this->visible, is_array($attributes) ? $attributes : func_get_args()
- );
- }
-
- /**
- * Make the given, typically hidden, attributes visible.
- *
- * @param array|string $attributes
- * @return $this
- */
- public function makeVisible($attributes)
- {
- $this->hidden = array_diff($this->hidden, (array) $attributes);
-
- if (! empty($this->visible)) {
- $this->addVisible($attributes);
- }
-
- return $this;
- }
-
- /**
- * Make the given, typically visible, attributes hidden.
- *
- * @param array|string $attributes
- * @return $this
- */
- public function makeHidden($attributes)
- {
- $attributes = (array) $attributes;
-
- $this->visible = array_diff($this->visible, $attributes);
-
- $this->hidden = array_unique(array_merge($this->hidden, $attributes));
-
- return $this;
- }
- }
|