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

Webform and Drupal 8
Webform and Drupal 8Webform and Drupal 8
Webform and Drupal 8Philip Norton
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a NodejsJan Sanchez
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI OverviewEd Musters
 
Spring boot
Spring bootSpring boot
Spring bootsdeeg
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Edureka!
 
Oracle Forms: Messages
Oracle Forms: MessagesOracle Forms: Messages
Oracle Forms: MessagesSekhar Byna
 
Rego University: Resource Management, CA PPM (CA Clarity PPM)
Rego University: Resource Management, CA PPM (CA Clarity PPM)Rego University: Resource Management, CA PPM (CA Clarity PPM)
Rego University: Resource Management, CA PPM (CA Clarity PPM)Rego Consulting
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS DirectivesEyal Vardi
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask PresentationParag Mujumdar
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controladorEmilio Sarabia
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자NAVER D2
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.jsTechMagic
 
AgensGraph: a Multi-model Graph Database based on PostgreSql
AgensGraph: a Multi-model Graph Database based on PostgreSqlAgensGraph: a Multi-model Graph Database based on PostgreSql
AgensGraph: a Multi-model Graph Database based on PostgreSqlKisung Kim
 

What's hot (17)

Webform and Drupal 8
Webform and Drupal 8Webform and Drupal 8
Webform and Drupal 8
 
Introduccion a Nodejs
Introduccion a NodejsIntroduccion a Nodejs
Introduccion a Nodejs
 
Recorrido en árboles binarios
Recorrido en árboles binariosRecorrido en árboles binarios
Recorrido en árboles binarios
 
Telerik Kendo UI Overview
Telerik Kendo UI OverviewTelerik Kendo UI Overview
Telerik Kendo UI Overview
 
Spring boot
Spring bootSpring boot
Spring boot
 
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
Node.js Tutorial for Beginners | Node.js Web Application Tutorial | Node.js T...
 
MVC in PHP
MVC in PHPMVC in PHP
MVC in PHP
 
Oracle Forms: Messages
Oracle Forms: MessagesOracle Forms: Messages
Oracle Forms: Messages
 
Rego University: Resource Management, CA PPM (CA Clarity PPM)
Rego University: Resource Management, CA PPM (CA Clarity PPM)Rego University: Resource Management, CA PPM (CA Clarity PPM)
Rego University: Resource Management, CA PPM (CA Clarity PPM)
 
AngularJS Directives
AngularJS DirectivesAngularJS Directives
AngularJS Directives
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Python/Flask Presentation
Python/Flask PresentationPython/Flask Presentation
Python/Flask Presentation
 
Angular 2 observables
Angular 2 observablesAngular 2 observables
Angular 2 observables
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자[131]chromium binging 기술을 node.js에 적용해보자
[131]chromium binging 기술을 node.js에 적용해보자
 
Intro to vue.js
Intro to vue.jsIntro to vue.js
Intro to vue.js
 
AgensGraph: a Multi-model Graph Database based on PostgreSql
AgensGraph: a Multi-model Graph Database based on PostgreSqlAgensGraph: a Multi-model Graph Database based on PostgreSql
AgensGraph: a Multi-model Graph Database based on PostgreSql
 

Similar to Laravel - Speaking eloquent eloquently

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
 
Obect-Oriented Collaboration
Obect-Oriented CollaborationObect-Oriented Collaboration
Obect-Oriented CollaborationAlena Holligan
 
Using and reusing CakePHP plugins
Using and reusing CakePHP pluginsUsing and reusing CakePHP plugins
Using and reusing CakePHP pluginsPierre MARTIN
 
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...jaxconf
 
Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)eddiejaoude
 
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
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - IntroductionABC-GROEP.BE
 
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
 

Similar to Laravel - Speaking eloquent eloquently (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
 
Obect-Oriented Collaboration
Obect-Oriented CollaborationObect-Oriented Collaboration
Obect-Oriented Collaboration
 
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
 
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...
MVC on the Server and on the Client: How to Integrate Spring MVC and Backbone...
 
Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)Models Best Practices (ZF MVC)
Models Best Practices (ZF MVC)
 
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
 
Sencha Touch - Introduction
Sencha Touch - IntroductionSencha Touch - Introduction
Sencha Touch - Introduction
 
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
 

Recently uploaded

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Recently uploaded (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

Laravel - Speaking eloquent eloquently