elafries / firestore-model by bereczkybalazs

A firestore model for laravel or lumen
42
0
1
Package Data
Maintainer Username: bereczkybalazs
Maintainer Contact: bereczkybalazs1@gmail.com (Balazs Bereczky)
Package Create Date: 2021-05-20
Package Last Update: 2021-07-28
Language: PHP
License: MIT
Last Refreshed: 2024-04-22 03:01:29
Package Statistics
Total Downloads: 42
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 0
Total Watchers: 1
Total Forks: 0
Total Open Issues: 0

FirestoreModel for laravel or lumen

Creating a model

This will create a model, which will connect to the users table


use Elafries\FirestoreModel\FirestoreModel;

class User extends FirestoreModel {

}

Handle model fields


use Elafries\FirestoreModel\FirestoreModel;

class User extends FirestoreModel {

    protected array $fillable = [
       'name', 'age', 'weight'
    ];

    protected array $hidden = [
        'password',
    ];

    protected array $secure = [
        'password',
    ];
}

fillable

When you insert to the database these fields will be added and the secure fields ONLY!

hidden

When you fetch from the database, these fields will be hidden

secure

When you insert/update the database these fields will be encrypted.
When you insert to the database, it will extend the fillable parameters.

Using a model via dependency injection


class UserController extends Controller 
{
    public function __construct(private User $user) {}
}

Queries

List queries

Fetch all item in the database :array

$this->user->all();

Fetch items in the database with filtering :array

$this->user->where('name', '=', 'test')->get();

Fetch items in the database with multiple where filtering :array

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->where('weight', '>', '110')
    ->get();

Fetch items in the database with filtering and with all the hidden properties :array

$this->user->where('name', '=', 'test')->getRaw();

Single result queries

Fetch the first in the database with filtering :array

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->first();

Fetch the first in the database with filtering and with all the hidden properties :array

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->firstRaw();

Fetch the first in the database by id :array

$this->user->findById('2asd123a23a');

Fetch the first in the database by id, with all the hidden properties :array

$this->user->findByIdRaw('2asd123a23a');

Existence queries

Count all items in a query :int

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->count();

Check if there is at least one result (exists) :bool

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->exists();

Insert :array

$this->user->create([
    'name' => 'Bill Buffalo',
    'age' => 43,
    'weight' => 92,
    'password' => 'secret'
]);

Update

Update by id :void

$this->user->updateById('2asd123a23a', [
    'age' => 51,
    'weight' => 97,
]);

Update all which match the query :void

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->update([
        'age' => 51,
        'weight' => 97,
    ]);

Delete

Delete all which match the query :void

$this->user
    ->where('name', '=', 'test')
    ->where('age', '>', '33')
    ->delete();