Размер файла: 2.72Kb
- <?php
-
- namespace Illuminate\Database\Eloquent\Concerns;
-
- use Closure;
-
- 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;
- }
-
- /**
- * 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;
- }
-
- /**
- * Make the given, typically hidden, attributes visible.
- *
- * @param array|string|null $attributes
- * @return $this
- */
- public function makeVisible($attributes)
- {
- $attributes = is_array($attributes) ? $attributes : func_get_args();
-
- $this->hidden = array_diff($this->hidden, $attributes);
-
- if (! empty($this->visible)) {
- $this->visible = array_merge($this->visible, $attributes);
- }
-
- return $this;
- }
-
- /**
- * Make the given, typically hidden, attributes visible if the given truth test passes.
- *
- * @param bool|Closure $condition
- * @param array|string|null $attributes
- * @return $this
- */
- public function makeVisibleIf($condition, $attributes)
- {
- return value($condition, $this) ? $this->makeVisible($attributes) : $this;
- }
-
- /**
- * Make the given, typically visible, attributes hidden.
- *
- * @param array|string|null $attributes
- * @return $this
- */
- public function makeHidden($attributes)
- {
- $this->hidden = array_merge(
- $this->hidden, is_array($attributes) ? $attributes : func_get_args()
- );
-
- return $this;
- }
-
- /**
- * Make the given, typically visible, attributes hidden if the given truth test passes.
- *
- * @param bool|Closure $condition
- * @param array|string|null $attributes
- * @return $this
- */
- public function makeHiddenIf($condition, $attributes)
- {
- return value($condition, $this) ? $this->makeHidden($attributes) : $this;
- }
- }