Quick ORM
4.1.0
4.1.0
  • Introduction
  • Why Quick?
  • What's New?
  • Upgrade Guide
  • Contributing
  • Guide
    • Getting Started
      • Defining An Entity
        • Subclass Entities
      • Retrieving Entities
      • Working with Entities
      • Creating New Entities
      • Updating Existing Entities
      • Deleting Entities
      • Query Scopes and Subselects
    • Relationships
      • Relationship Types
        • hasOne
        • hasMany
        • belongsTo
        • belongsToMany
        • hasManyThrough
        • hasOneThrough
        • belongsToThrough
        • polymorphicBelongsTo
        • polymorphicHasMany
      • Retrieving Relationships
      • Querying Relationships
      • Relationship Counts
      • Ordering By Relationships
      • Eager Loading
    • CBORM Compatibility Shim
    • Collections
    • Custom Getters & Setters
    • Serialization
    • Interception Points
    • Debugging
    • FAQ
  • Cookbook
    • Introduction
  • External Links
    • API Docs
    • Source Code
    • Issue Tracker
Powered by GitBook
On this page
  • save
  • update
  • updateOrCreate
  • updateAll
  • fresh
  • refresh

Was this helpful?

Edit on Git
Export as PDF
  1. Guide
  2. Getting Started

Updating Existing Entities

save

Updates are handled identically to inserts when using the save method. The only difference is that instead of starting with a new entity, we start with an existing entity.

var user = getInstance( "User" ).find( 1 );
user.setPassword( "newpassword" );
user.save();

update

You can update multiple fields at once using the update method. This is similar to the create method for creating new entities.

Name

Type

Required

Default

Description

attributes

struct

false

{}

A struct of key / value pairs to update on the entity.

ignoreNonExistentAttributes

boolean

false

false

If true, does not throw an exception if an attribute does not exist. Instead, it skips the non-existent attribute.

var user = getInstance( "User" ).find( 1 );
user.update( {
   email = "janedoe2@example.com",
   password = "newpassword"
} );

There is no need to call save when using the update method.

By default, if you have a key in the struct that doesn't match a property in the entity the update method will fail. If you add the optional argument ignoreNonExistentAttributes set to true, those missing keys are ignored. Now you can pass the rc scope from your submitted form directly into the update method and not worry about any other keys in the rc like event that would cause the method to fail.

var user = getInstance( "User" ).find( 1 );
user.update( rc, true );

updateOrCreate

Name

Type

Required

Default

Description

attributes

struct

false

{}

A struct of attributes to restrict the query. If no entity is found the attributes are filled on the new entity created.

newAttributes

struct

false

{}

A struct of attributes to update on the found entity or the new entity if no entity is found.

ignoreNonExistentAttributes

boolean

false

false

If true, does not throw an exception if an attribute does not exist. Instead, it skips the non-existent attribute.

Updates an existing record or creates a new record with the given attributes.

var user = getInstance( "User" ).updateOrCreate( {
    "username": "newuser"
} );

updateAll

Name

Type

Required

Default

Description

attributes

struct

false

{}

The attributes to update on the matching records.

force

boolean

false

false

If true, skips read-only entity and read-only attribute checks.

getInstance( "User" )
    .where( "lastLoggedIn", ">", dateAdd( "m", 3, now() ) )
    .updateAll( {
        "active" = 0
    } );

fresh

Name

Type

Required

Default

Description

No arguments

``

Retrieves a new entity from the database with the same key value as the current entity. Useful for seeing any changes made to the record in the database. This function executes a query.

var user = getInstance( "User" ).findOrFail( rc.userID );
var sameUser = user.fresh();

refresh

Name

Type

Required

Default

Description

No arguments

``

Refreshes the attributes data for the entity with data from the database. This differs from fresh in that it operates on the current entity instead of returning a new one. This function executes a query.

var user = getInstance( "User" ).findOrFail( rc.userID );
user.refresh(); // user now has updated data from the database
PreviousCreating New EntitiesNextDeleting Entities

Last updated 4 years ago

Was this helpful?

Updates matching entities with the given attributes according to the configured query. This is analagous to

qb's update method.