SlideShare a Scribd company logo
1 of 78
Download to read offline
SPEAKING ELOQUENT
ELOQUENTLY
Stephen
Afam‐Osemene
https://stephenafamo.com
@StephenAfamO
Thinking Eloquently
Accessors & Mutators
Scopes
Collections
Serialization
Events & Observers
Relationships
Mutators
OUTLINE
THINKING
ELOQUENTLY
THINKING ELOQUENTLY
Eloquent is not just a fancy
way of specifying the table
for the Query Builder
A Model, should enable us
retrieve and manipulate
EVERY information related
to it
THINKING ELOQUENTLY
Data manupulation belongs
in the Model
A model should completely
define a unit of DATA
THINKING ELOQUENTLY
ACCESSORS &
MUTATORS
ACCESSORS
Accessors allow us to
format our data when we
retrieve them
Instead of
ACCESSORS
$user = User::find(1);
echo "http://myapp.com" . $user‐>avatar;
ACCESSORS
We do
class User extends Model
{
public function getAvatarAttribute($value)
{
return "http://myapp.com/" . $value;
}
}
MUTATORS
Mutators allow us to
format our data when we
set them
Instead of
$user‐>name = ucfirst("stephen");
MUTATORS
We do
class User extends Model
{
public function setNameAttribute($value)
{
$this‐>attributes['name'] = ucfirst($value);
}
}
MUTATORS
SCOPES
SCOPES
Scopes are ways for us to
store restraints which we
can use repeatedly
SCOPES ‐ LOCAL
Local scopes are specific to
the model.
Although, we can always
extend the class ;‐﴿
SCOPES ‐ LOCAL
Do this once
class Developer extends Model
{
public function scopeSenior($query)
{
return $query‐>where('yrs_of_exp', '>', 3);
}
}
SCOPES ‐ LOCAL
Use anytime!
$senior_devs = AppDeveloper::senior()‐>get()
SCOPES ‐ LOCAL
We can accept additional
parameters to make our
scopes dynamic
SCOPES ‐ LOCAL
class Developer extends Model
{
public function scopeUses($query, $language)
{
return $query‐>where('language', $language);
}
}
Make it dynamic
SCOPES ‐ LOCAL
$php_devs = AppDeveloper::uses('php)‐>get()
Use anytime!
SCOPES ‐ GLOBAL
We can define a scope that
will be applied to all
queries by our Model
SCOPES ‐ GLOBAL
use IlluminateDatabaseEloquentScope;
class VerifiedScope implements Scope
{
public function apply($builder, $model)
{
$builder‐>where('verified', true);
}
}
Define the scope
class Developer extends Model
{
protected static function boot()
{
parent::boot();
static::addGlobalScope(new VerifiedScope);
}
}
SCOPES ‐ GLOBAL
Include the scope
SCOPES ‐ GLOBAL
Now all queries from our
Developer model will
retrieve only verified
entries.
SCOPES ‐ GLOBAL
// Global scope automatically applied
$verified_devs = Developer::get()
// Query without the Verified global scope
Developer::withoutGlobalScope(VerifiedScope::class)‐>get()
// Query without any global scope
Developer:: withoutGlobalScopes()‐>get()
Define the scope
COLLECTIONS
COLLECTIONS
Anytime multiple records
are retrieved, it is returned
as a COLLECTION of
Models
COLLECTIONS
Collections are
supercharged php arrays.
learn about it
https://laravel.com/docs/5.4/collections
COLLECTIONS
We can define a custom
Collection Object to be
returned by our model.
COLLECTIONS
use IlluminateSupportCollection;
class CustomCollection extends Collection
{
public function additionalMethod($var)
{
// do something unique
}
}
Define our new collection class
COLLECTIONS
Overwrite the newCollection method
class Developer extends Model
{
public function newCollection(array $models = [])
{
return new CustomCollection($models);
}
}
SERIALIZATION
SERIALIZATION
We can easily convert our
Model into an array or
JSON of it's attributes
SERIALIZATION
Easy!
$developer = AppDeveloper ::find(1);
// For arrays
$developer_array = $develooper‐>toArray();
// For JSON
$developer_json = $developer‐>toJson()
Sometimes we need to hide stuff so...
SERIALIZATION
class User extends Model
{
protected $hidden = ['age', 'address'];
// OR
protected $visible = ['company', 'name'];
}
Other times we want to access hidden
stuff so...
SERIALIZATION
$user = AppUser::find(1);
// maybe when the user is viewing
$with_age = $user‐>makeVisible('age')‐>toArray();
// for corporate reasons maybe ˉ_(ツ)_/ˉ
$without_company = $user‐>makeHidden('company')‐>toArray;
What if we just want to add stuff?
SERIALIZATION
class User extends Model
{
protected $appends = ['birth_year'];
public function getIBirthYearAttribute()
{
return date("Y") ‐ $this‐>age;
}
}
EVENTS & OBSERVERS
EVENTS & OBSERVERS
Laravel events are a great
way to subscribe and listen
for various events that
occur in our application.
https://laravel.com/docs/5.4/events
EVENTS & OBSERVERS
Eloquent models fire
several events.
We can map these events
to our event classes
EVENTS & OBSERVERS
Define the events property to map events
class User extends Model
{
protected $events = [
'saved' => UserSaved::class,
'deleted' => UserDeleted::class,
];
}
EVENTS & OBSERVERS
Full list of Eloquent events
creating created
updating updated
saving saved
deleting deleted
restoring restored
EVENTS & OBSERVERS
Observers are classes
whose sole purpose is to
listen to eloquent events
EVENTS & OBSERVERS
Create the Observer class
use AppMeetup;
class MeetupObserver
{
public function saving (Meetup $meetup)
{
// do something for the 'saving' event
// you an have more functions with 'event' names
}
}
EVENTS & OBSERVERS
Register the observer in a ServiceProvider
use AppMeetup;
class MyServiceProvider
{
public function boot ()
{
Meetup::observe(MeetupObserver::class);
}
}
RELATIONSHIPS
RELATIONSHIPS
Eloquent makes is really
easy to define and access
related models
RELATIONSHIPS ‐ 1‐1
One‐to‐One relationships
are where each model is
tied to one of the other
type
users
id ‐ integer
name ‐ string
contact
id ‐ integer
user_id ‐ integer
phone ‐ string
email ‐ string
website ‐ string
Example Database schema
RELATIONSHIPS ‐ 1‐1
Defining one side of the relationship
class User extends Model
{
public function contact()
{
return $this‐>hasOne('AppContact');
}
}
RELATIONSHIPS ‐ 1‐1
Defining the other side
class Contact extends Model
{
public function user()
{
return $this‐>belongsTo('AppUser');
}
}
RELATIONSHIPS ‐ 1‐1
$user = AppUser::find(1);
// Instead of
$contact = AppContact::select('contacts.*')
‐>where('user_id', '=', $user‐>id)
‐>first();
// We do
$contact = $user‐>contact;
RELATIONSHIPS ‐ 1‐1
RELATIONSHIPS ‐ 1‐n
One‐to‐Many relationships
are where one model is
linked to many of another
type
Example Database schema
users
id ‐ integer
name ‐ string
contact
id ‐ integer
user_id ‐ integer
type ‐ string
value ‐ string
RELATIONSHIPS ‐ 1‐n
Defining one side of the relationship
class User extends Model
{
public function contacts()
{
return $this‐>hasMany('AppContact');
}
}
RELATIONSHIPS ‐ 1‐n
Defining the other side
class Contact extends Model
{
public function user()
{
return $this‐>belongsTo('AppUser');
}
}
RELATIONSHIPS ‐ 1‐n
RELATIONSHIPS ‐ 1‐n
$user = AppUser::find(1);
// Instead of
$contacts = AppContact::select('contacts.*')
‐>where('user_id', '=', $user‐>id)
‐>get();
// We do
$contacts = $user‐>contacts;
RELATIONSHIPS ‐ n‐n
Many‐to‐Many
relationships are more
complicated
Example Database schema
users
id ‐ integer
name ‐ string
contact
id ‐ integer
user_id ‐ integer
type_id ‐ integer
value ‐ string
type
id ‐ integer
name ‐ string
RELATIONSHIPS ‐ n‐n
Defining one side of the relationship
class User extends Model
{
public function types()
{
return $this‐>belongsToMany('AppType')
‐>withPivot('id', 'value');
}
}
RELATIONSHIPS ‐ n‐n
Defining the other side
class Type extends Model
{
public function users()
{
return $this‐>belongsToMany('AppUser');
}
}
RELATIONSHIPS ‐ n‐n
RELATIONSHIPS ‐ 1‐n
// Instead of
$contacts = AppContact::select('contacts.*')
‐>join('types', 'contact.type_id', '=', 'types.id')
‐>where('user_id', '=', $user‐>id)
‐>where('type.name', '=', 'phone')
‐>get();
// We do
$types = $user‐>types;
//access throught the pivot property
RELATIONSHIPS ‐ distant
Distant relations can be
accessed easily by using
the hasManyThrough﴾﴿
relationship
Example Database schema
users
id ‐ integer
name ‐ string
posts
id ‐ integer
user_id ‐ integer
title ‐ string
body ‐ string
comments
id ‐ integer
post_id ‐ integer
title ‐ string
body ‐ string
RELATIONSHIPS ‐ distant
Defining the relationship
class User extends Model
{
public function comments()
{
return $this‐>hasManyThrough('AppPost', 'AppComment);
}
}
RELATIONSHIPS ‐ distant
// Instead of
$comments = AppComment::select('comments.*')
‐>join('posts', 'comment.post_id', '=', 'posts.id')
‐>join('users', 'post.user_id', '=', 'users.id')
‐>where('user_id', '=', $user‐>id)
‐>get();
// We do
$comments = $user‐>comments;
RELATIONSHIPS ‐ distant
RELATIONSHIPS ‐ morph
Polymorphic relationships
can save us from creating
many similar tables.
RELATIONSHIPS ‐ morph
We can allow more than
one model to relate with
our model.
Many applications
Example Database schema
users
id ‐ integer
name ‐ string
groups
id ‐ integer
name ‐ string
pictures
id ‐ integer
path‐ string
owner_id ‐ integer
owner_type ‐ string
RELATIONSHIPS ‐ morph
RELATIONSHIPS ‐ notes
Dynamic properties
$post‐>comments; //get all comments as a collection
$post‐>comments(); //returns a relationship class
// Can be used as query builders
$post‐>comments()‐>where('like', '>', 5);
RELATIONSHIPS ‐ notes
Check if it exists
Post::has('comments', '>=', 3)‐>get();
Post::doesntHave('comments')‐>get();
RELATIONSHIPS ‐ notes
Eager Loading
// Instead of this
$users = AppUser::all();
foreach ($users as $user) {
echo $user‐>contact‐>phone;
}
// We do this
$user = AppUser::with('contact')‐>get();
Inserting & Updating
create﴾﴿ save﴾﴿
associate﴾﴿ dissociate﴾﴿
attach﴾﴿ detach﴾﴿
sync﴾﴿ toggle﴾﴿
RELATIONSHIPS ‐ notes
We have many ways to modify relationships
RELATIONSHIPS ‐ notes
So many more lovely
capabilities.
https://laravel.com/docs/5.4/
eloquent‐relationships
QUESTIONS?
Twitter: @StephenAfamO
GitHub: @StephenAfamO
Website: https://stephenafamo.com
THANK YOU
Twitter: @StephenAfamO
GitHub: @StephenAfamO
Website: https://stephenafamo.com

More Related Content

What's hot

Symfony Messenger (Symfony Live San Francisco)
Symfony Messenger (Symfony Live San Francisco)Symfony Messenger (Symfony Live San Francisco)
Symfony Messenger (Symfony Live San Francisco)Samuel ROZE
 
Obect-Oriented Collaboration
Obect-Oriented CollaborationObect-Oriented Collaboration
Obect-Oriented CollaborationAlena Holligan
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - IntroductionABC-GROEP.BE
 
Hacking Your Way To Better Security - Dutch PHP Conference 2016
Hacking Your Way To Better Security - Dutch PHP Conference 2016Hacking Your Way To Better Security - Dutch PHP Conference 2016
Hacking Your Way To Better Security - Dutch PHP Conference 2016Colin O'Dell
 
Symfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il clienteSymfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il clienteLeonardo Proietti
 
Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Leonardo Proietti
 
Love and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayLove and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayKris Wallsmith
 
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful SecurityGuard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful SecurityRyan Weaver
 
Hooks and Events in Drupal 8
Hooks and Events in Drupal 8Hooks and Events in Drupal 8
Hooks and Events in Drupal 8Nida Ismail Shah
 
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Ryan Mauger
 
ZendCon2010 The Doctrine Project
ZendCon2010 The Doctrine ProjectZendCon2010 The Doctrine Project
ZendCon2010 The Doctrine ProjectJonathan Wage
 
Basic Oops concept of PHP
Basic Oops concept of PHPBasic Oops concept of PHP
Basic Oops concept of PHPRohan Sharma
 
Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Fabien Potencier
 

What's hot (19)

Symfony Messenger (Symfony Live San Francisco)
Symfony Messenger (Symfony Live San Francisco)Symfony Messenger (Symfony Live San Francisco)
Symfony Messenger (Symfony Live San Francisco)
 
Obect-Oriented Collaboration
Obect-Oriented CollaborationObect-Oriented Collaboration
Obect-Oriented Collaboration
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - Introduction
 
Hacking Your Way To Better Security - Dutch PHP Conference 2016
Hacking Your Way To Better Security - Dutch PHP Conference 2016Hacking Your Way To Better Security - Dutch PHP Conference 2016
Hacking Your Way To Better Security - Dutch PHP Conference 2016
 
Demystifying oop
Demystifying oopDemystifying oop
Demystifying oop
 
Symfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il clienteSymfony2, creare bundle e valore per il cliente
Symfony2, creare bundle e valore per il cliente
 
Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5Rich domain model with symfony 2.5 and doctrine 2.5
Rich domain model with symfony 2.5 and doctrine 2.5
 
Love and Loss: A Symfony Security Play
Love and Loss: A Symfony Security PlayLove and Loss: A Symfony Security Play
Love and Loss: A Symfony Security Play
 
Introduction Php
Introduction PhpIntroduction Php
Introduction Php
 
Guard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful SecurityGuard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
 
Drupal 8 Routing
Drupal 8 RoutingDrupal 8 Routing
Drupal 8 Routing
 
Hooks and Events in Drupal 8
Hooks and Events in Drupal 8Hooks and Events in Drupal 8
Hooks and Events in Drupal 8
 
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
Zend Framework and the Doctrine2 MongoDB ODM (ZF1)
 
ZendCon2010 The Doctrine Project
ZendCon2010 The Doctrine ProjectZendCon2010 The Doctrine Project
ZendCon2010 The Doctrine Project
 
Basic Oops concept of PHP
Basic Oops concept of PHPBasic Oops concept of PHP
Basic Oops concept of PHP
 
Only oop
Only oopOnly oop
Only oop
 
SOLID in Practice
SOLID in PracticeSOLID in Practice
SOLID in Practice
 
Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)Be RESTful (Symfony Camp 2008)
Be RESTful (Symfony Camp 2008)
 
var, let in SIL
var, let in SILvar, let in SIL
var, let in SIL
 

Similar to Speaking Eloquently About Eloquent Models

PHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better CodePHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better CodeSWIFTotter Solutions
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For BeginnersJonathan Wage
 
Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP pluginsPierre MARTIN
 
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Alena Holligan
 
MVC on the server and on the client
MVC on the server and on the clientMVC on the server and on the client
MVC on the server and on the clientSebastiano Armeli
 
Demystifying Object-Oriented Programming - ZendCon 2016
Demystifying Object-Oriented Programming - ZendCon 2016Demystifying Object-Oriented Programming - ZendCon 2016
Demystifying Object-Oriented Programming - ZendCon 2016Alena Holligan
 
A resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangleA resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangleAkihito Koriyama
 
Services Drupalcamp Stockholm 2009
Services Drupalcamp Stockholm 2009Services Drupalcamp Stockholm 2009
Services Drupalcamp Stockholm 2009hugowetterberg
 
Demystifying Object-Oriented Programming - Midwest PHP
Demystifying Object-Oriented Programming - Midwest PHPDemystifying Object-Oriented Programming - Midwest PHP
Demystifying Object-Oriented Programming - Midwest PHPAlena Holligan
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto UniversityAngular.js Primer in Aalto University
Angular.js Primer in Aalto UniversitySC5.io
 
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationPHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationAlexander Obukhov
 
Advanced Interfaces and Repositories in Laravel
Advanced Interfaces and Repositories in LaravelAdvanced Interfaces and Repositories in Laravel
Advanced Interfaces and Repositories in LaravelJonathan Behr
 
Demystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - Lone Star PHPDemystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - Lone Star PHPAlena Holligan
 
The state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon DublinThe state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon DublinNida Ismail Shah
 
Structural pattern 3
Structural pattern 3Structural pattern 3
Structural pattern 3Naga Muruga
 
Angular presentation
Angular presentationAngular presentation
Angular presentationMatus Szabo
 

Similar to Speaking Eloquently About Eloquent Models (20)

PHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better CodePHP: 4 Design Patterns to Make Better Code
PHP: 4 Design Patterns to Make Better Code
 
Doctrine For Beginners
Doctrine For BeginnersDoctrine For Beginners
Doctrine For Beginners
 
RESTful web services
RESTful web servicesRESTful web services
RESTful web services
 
Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP plugins
 
Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017Demystifying Object-Oriented Programming - PHP UK Conference 2017
Demystifying Object-Oriented Programming - PHP UK Conference 2017
 
MVC on the server and on the client
MVC on the server and on the clientMVC on the server and on the client
MVC on the server and on the client
 
Demystifying Object-Oriented Programming - ZendCon 2016
Demystifying Object-Oriented Programming - ZendCon 2016Demystifying Object-Oriented Programming - ZendCon 2016
Demystifying Object-Oriented Programming - ZendCon 2016
 
A resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangleA resource oriented framework using the DI/AOP/REST triangle
A resource oriented framework using the DI/AOP/REST triangle
 
Services Drupalcamp Stockholm 2009
Services Drupalcamp Stockholm 2009Services Drupalcamp Stockholm 2009
Services Drupalcamp Stockholm 2009
 
Demystifying Object-Oriented Programming - Midwest PHP
Demystifying Object-Oriented Programming - Midwest PHPDemystifying Object-Oriented Programming - Midwest PHP
Demystifying Object-Oriented Programming - Midwest PHP
 
Angular.js Primer in Aalto University
Angular.js Primer in Aalto UniversityAngular.js Primer in Aalto University
Angular.js Primer in Aalto University
 
Laravel
LaravelLaravel
Laravel
 
PHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generationPHP: GraphQL consistency through code generation
PHP: GraphQL consistency through code generation
 
Advanced Interfaces and Repositories in Laravel
Advanced Interfaces and Repositories in LaravelAdvanced Interfaces and Repositories in Laravel
Advanced Interfaces and Repositories in Laravel
 
AngularJs-training
AngularJs-trainingAngularJs-training
AngularJs-training
 
Demystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - Lone Star PHPDemystifying Object-Oriented Programming - Lone Star PHP
Demystifying Object-Oriented Programming - Lone Star PHP
 
Les12
Les12Les12
Les12
 
The state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon DublinThe state of hooking into Drupal - DrupalCon Dublin
The state of hooking into Drupal - DrupalCon Dublin
 
Structural pattern 3
Structural pattern 3Structural pattern 3
Structural pattern 3
 
Angular presentation
Angular presentationAngular presentation
Angular presentation
 

Recently uploaded

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Recently uploaded (20)

The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Speaking Eloquently About Eloquent Models