!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/home/ccl/vendor/jenssegers/mongodb/src/Jenssegers/Mongodb/Relations/   drwxrwxr-x
Free 13.12 GB of 57.97 GB (22.63%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     EmbedsOneOrMany.php (9.95 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php namespace Jenssegers\Mongodb\Relations;

use 
Illuminate\Database\Eloquent\Builder;
use 
Illuminate\Database\Eloquent\Collection;
use 
Illuminate\Database\Eloquent\Model;
use 
Illuminate\Database\Eloquent\Relations\Relation;

abstract class 
EmbedsOneOrMany extends Relation
{
    
/**
     * The local key of the parent model.
     *
     * @var string
     */
    
protected $localKey;

    
/**
     * The foreign key of the parent model.
     *
     * @var string
     */
    
protected $foreignKey;

    
/**
     * The "name" of the relationship.
     *
     * @var string
     */
    
protected $relation;

    
/**
     * Create a new embeds many relationship instance.
     *
     * @param  \Illuminate\Database\Eloquent\Builder  $query
     * @param  \Illuminate\Database\Eloquent\Model    $parent
     * @param  \Illuminate\Database\Eloquent\Model    $related
     * @param  string  $localKey
     * @param  string  $foreignKey
     * @param  string  $relation
     */
    
public function __construct(Builder $queryModel $parentModel $related$localKey$foreignKey$relation)
    {
        
$this->query $query;
        
$this->parent $parent;
        
$this->related $related;
        
$this->localKey $localKey;
        
$this->foreignKey $foreignKey;
        
$this->relation $relation;

         
// If this is a nested relation, we need to get the parent query instead.
        
if ($parentRelation $this->getParentRelation()) {
            
$this->query $parentRelation->getQuery();
        }

        
$this->addConstraints();
    }

    
/**
     * Set the base constraints on the relation query.
     */
    
public function addConstraints()
    {
        if (static::
$constraints) {
            
$this->query->where($this->getQualifiedParentKeyName(), '='$this->getParentKey());
        }
    }

    
/**
     * Set the constraints for an eager load of the relation.
     *
     * @param  array  $models
     */
    
public function addEagerConstraints(array $models)
    {
        
// There are no eager loading constraints.
    
}

    
/**
     * Initialize the relation on a set of models.
     *
     * @param  array   $models
     * @param  string  $relation
     */
    
public function initRelation(array $models$relation)
    {
        foreach (
$models as $model) {
            
$model->setParentRelation($this);

            
$model->setRelation($relation$this->related->newCollection());
        }

        return 
$models;
    }

    
/**
     * Match the eagerly loaded results to their parents.
     *
     * @param  array   $models
     * @param  \Illuminate\Database\Eloquent\Collection  $results
     * @param  string  $relation
     * @return array
     */
    
public function match(array $modelsCollection $results$relation)
    {
        foreach (
$models as $model) {
            
$results $model->$relation()->getResults();

            
$model->setParentRelation($this);

            
$model->setRelation($relation$results);
        }

        return 
$models;
    }

    
/**
     * Shorthand to get the results of the relationship.
     *
     * @return \Illuminate\Database\Eloquent\Collection
     */
    
public function get()
    {
        return 
$this->getResults();
    }

    
/**
     * Get the number of embedded models.
     *
     * @return int
     */
    
public function count()
    {
        return 
count($this->getEmbedded());
    }

    
/**
     * Attach a model instance to the parent model.
     *
     * @param  \Illuminate\Database\Eloquent\Model  $model
     * @return \Illuminate\Database\Eloquent\Model
     */
    
public function save(Model $model)
    {
        
$model->setParentRelation($this);

        return 
$model->save() ? $model false;
    }

    
/**
     * Attach a collection of models to the parent instance.
     *
     * @param  \Illuminate\Database\Eloquent\Collection|array  $models
     * @return \Illuminate\Database\Eloquent\Collection|array
     */
    
public function saveMany($models)
    {
        foreach (
$models as $model) {
            
$this->save($model);
        }

        return 
$models;
    }

    
/**
     * Create a new instance of the related model.
     *
     * @param  array  $attributes
     * @return \Illuminate\Database\Eloquent\Model
     */
    
public function create(array $attributes)
    {
        
// Here we will set the raw attributes to avoid hitting the "fill" method so
        // that we do not have to worry about a mass accessor rules blocking sets
        // on the models. Otherwise, some of these attributes will not get set.
        
$instance $this->related->newInstance($attributes);

        
$instance->setParentRelation($this);

        
$instance->save();

        return 
$instance;
    }

    
/**
     * Create an array of new instances of the related model.
     *
     * @param  array  $records
     * @return array
     */
    
public function createMany(array $records)
    {
        
$instances = [];

        foreach (
$records as $record) {
            
$instances[] = $this->create($record);
        }

        return 
$instances;
    }

    
/**
     * Transform single ID, single Model or array of Models into an array of IDs.
     *
     * @param  mixed  $ids
     * @return array
     */
    
protected function getIdsArrayFrom($ids)
    {
        if (
$ids instanceof \Illuminate\Support\Collection) {
            
$ids $ids->all();
        }

        if (! 
is_array($ids)) {
            
$ids = [$ids];
        }

        foreach (
$ids as &$id) {
            if (
$id instanceof Model) {
                
$id $id->getKey();
            }
        }

        return 
$ids;
    }

    
/**
     * Get the embedded records array.
     *
     * @return array
     */
    
protected function getEmbedded()
    {
        
// Get raw attributes to skip relations and accessors.
        
$attributes $this->parent->getAttributes();

        
$embedded = isset($attributes[$this->localKey]) ? (array) $attributes[$this->localKey] : null;

        return 
$embedded;
    }

    
/**
     * Set the embedded records array.
     *
     * @param  array  $records
     * @return \Illuminate\Database\Eloquent\Model
     */
    
protected function setEmbedded($records)
    {
        
// Assign models to parent attributes array.
        
$attributes $this->parent->getAttributes();

        
$attributes[$this->localKey] = $records;

        
// Set raw attributes to skip mutators.
        
$this->parent->setRawAttributes($attributes);

        
// Set the relation on the parent.
        
return $this->parent->setRelation($this->relation$records === null null $this->getResults());
    }

    
/**
     * Get the foreign key value for the relation.
     *
     * @param  mixed  $id
     * @return mixed
     */
    
protected function getForeignKeyValue($id)
    {
        if (
$id instanceof Model) {
            
$id $id->getKey();
        }

        
// Convert the id to MongoId if necessary.
        
return $this->getBaseQuery()->convertKey($id);
    }

    
/**
     * Convert an array of records to a Collection.
     *
     * @param  array  $records
     * @return \Illuminate\Database\Eloquent\Collection
     */
    
protected function toCollection(array $records = [])
    {
        
$models = [];

        foreach (
$records as $attributes) {
            
$models[] = $this->toModel($attributes);
        }

        if (
count($models) > 0) {
            
$models $this->eagerLoadRelations($models);
        }

        return new 
Collection($models);
    }

    
/**
     * Create a related model instanced.
     *
     * @param  array  $attributes
     * @return \Illuminate\Database\Eloquent\Model
     */
    
protected function toModel($attributes = [])
    {
        if (
is_null($attributes)) {
            return;
        }

        
$model $this->related->newFromBuilder((array) $attributes);

        
$model->setParentRelation($this);

        
$model->setRelation($this->foreignKey$this->parent);

        
// If you remove this, you will get segmentation faults!
        
$model->setHidden(array_merge($model->getHidden(), [$this->foreignKey]));

        return 
$model;
    }

    
/**
     * Get the relation instance of the parent.
     *
     * @return \Illuminate\Database\Eloquent\Relations\Relation
     */
    
protected function getParentRelation()
    {
        return 
$this->parent->getParentRelation();
    }

    
/**
     * Get the underlying query for the relation.
     *
     * @return \Illuminate\Database\Eloquent\Builder
     */
    
public function getQuery()
    {
        
// Because we are sharing this relation instance to models, we need
        // to make sure we use separate query instances.
        
return clone $this->query;
    }

    
/**
     * Get the base query builder driving the Eloquent builder.
     *
     * @return \Illuminate\Database\Query\Builder
     */
    
public function getBaseQuery()
    {
        
// Because we are sharing this relation instance to models, we need
        // to make sure we use separate query instances.
        
return clone $this->query->getQuery();
    }

    
/**
     * Check if this relation is nested in another relation.
     *
     * @return bool
     */
    
protected function isNested()
    {
        return 
$this->getParentRelation() != null;
    }

    
/**
     * Get the fully qualified local key name.
     *
     * @param  string  $glue
     * @return string
     */
    
protected function getPathHierarchy($glue '.')
    {
        if (
$parentRelation $this->getParentRelation()) {
            return 
$parentRelation->getPathHierarchy($glue) . $glue $this->localKey;
        }

        return 
$this->localKey;
    }

    
/**
     * Get the parent's fully qualified key name.
     *
     * @return string
     */
    
public function getQualifiedParentKeyName()
    {
        if (
$parentRelation $this->getParentRelation()) {
            return 
$parentRelation->getPathHierarchy() . '.' $this->parent->getKeyName();
        }

        return 
$this->parent->getKeyName();
    }

    
/**
     * Get the primary key value of the parent.
     *
     * @return string
     */
    
protected function getParentKey()
    {
        return 
$this->parent->getKey();
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0052 ]--