![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/vendor/cviebrock/eloquent-sluggable/src/ |
<?php namespace Cviebrock\EloquentSluggable; use Illuminate\Database\Eloquent\Builder; /** * Class SluggableScopeHelpers * * Helper trait for defining the primary slug of a model * and providing useful scopes and query methods. * * @package Cviebrock\EloquentSluggable */ trait SluggableScopeHelpers { /** * Primary slug column of this model. * * @return string */ public function getSlugKeyName(): string { if (property_exists($this, 'slugKeyName')) { return $this->slugKeyName; } $config = $this->sluggable(); $name = reset($config); $key = key($config); // check for short configuration if ($key === 0) { return $name; } return $key; } /** * Primary slug value of this model. * * @return string */ public function getSlugKey(): string { return $this->getAttribute($this->getSlugKeyName()); } /** * Query scope for finding a model by its primary slug. * * @param \Illuminate\Database\Eloquent\Builder $scope * @param string $slug * @return \Illuminate\Database\Eloquent\Builder */ public function scopeWhereSlug(Builder $scope, string $slug): Builder { return $scope->where($this->getSlugKeyName(), $slug); } /** * Find a model by its primary slug. * * @param string $slug * @param array $columns * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection|static[]|static|null */ public static function findBySlug(string $slug, array $columns = ['*']) { return static::whereSlug($slug)->first($columns); } /** * Find a model by its primary slug or throw an exception. * * @param string $slug * @param array $columns * @return \Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection * * @throws \Illuminate\Database\Eloquent\ModelNotFoundException */ public static function findBySlugOrFail(string $slug, array $columns = ['*']) { return static::whereSlug($slug)->firstOrFail($columns); } }