Silber\Bouncer\Helper::extractModelAndKeys PHP Метод

extractModelAndKeys() публичный статический Метод

Extract the model instance and model keys from the given parameters.
public static extractModelAndKeys ( string | Model | Illuminate\Database\Eloquent\Collection $model, array $keys = null ) : array
$model string | Illuminate\Database\Eloquent\Model | Illuminate\Database\Eloquent\Collection
$keys array
Результат array
    public static function extractModelAndKeys($model, array $keys = null)
    {
        if (is_null($keys)) {
            if ($model instanceof Model) {
                return [$model, [$model->getKey()]];
            }
            if ($model instanceof Collection) {
                return [$model->first(), $model->modelKeys()];
            }
        } else {
            if (is_string($model)) {
                $model = new $model();
            }
            return [$model, $keys];
        }
    }

Usage Example

Пример #1
0
 /**
  * Constrain the given roles query to those that were assigned to the given authorities.
  *
  * @param  \Illuminate\Database\Eloquent\Builder  $query
  * @param  string|\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Collection  $model
  * @param  array  $keys
  * @return void
  */
 public function constrainWhereAssignedTo($query, $model, array $keys = null)
 {
     list($model, $keys) = Helper::extractModelAndKeys($model, $keys);
     $query->whereExists(function ($query) use($model, $keys) {
         $table = $model->getTable();
         $key = "{$table}.{$model->getKeyName()}";
         $pivot = Models::table('assigned_roles');
         $roles = Models::table('roles');
         $prefix = Models::prefix();
         $query->from($table)->join($pivot, $key, '=', $pivot . '.entity_id')->whereRaw("{$prefix}{$pivot}.role_id = {$prefix}{$roles}.id")->where("{$pivot}.entity_type", $model->getMorphClass())->whereIn($key, $keys);
     });
 }
All Usage Examples Of Silber\Bouncer\Helper::extractModelAndKeys