All attribute accessor / mutator methods must declare a return type-hint of Illuminate\Database\Eloquent\Casts\Attribute:īy default, the date and datetime casts will serialize dates to a UTC ISO-8601 date string ( YYYY-MM-DDTHH:MM:SS.uuuuuuZ), regardless of the timezone specified in your application's timezone configuration option. The accessor will automatically be called by Eloquent when attempting to retrieve the value of the first_name attribute. In this example, we'll define an accessor for the first_name attribute. This method name should correspond to the "camel case" representation of the true underlying model attribute / database column when applicable. To define an accessor, create a protected method on your model to represent the accessible attribute. Or, you may want to convert a JSON string that is stored in your database to an array when it is accessed via your Eloquent model.Īn accessor transforms an Eloquent attribute value when it is accessed. For example, you may want to use the Laravel encrypter to encrypt a value while it is stored in the database, and then automatically decrypt the attribute when you access it on an Eloquent model. This property maps various points of the Eloquent model's lifecycle to your own event classes.Accessors, mutators, and attribute casting allow you to transform Eloquent attribute values when you retrieve or set them on model instances. To start listening to model events, define a $dispatchesEvents property on your Eloquent model. Event names ending with -ing are dispatched before any changes to the model are persisted, while events ending with -ed are dispatched after the changes to the model are persisted. The saving / saved events will dispatch when a model is created or updated - even if the model's attributes have not been changed. The updating / updated events will dispatch when an existing model is modified and the save method is called. When a new model is saved for the first time, the creating and created events will dispatch. The retrieved event will dispatch when an existing model is retrieved from the database. Want to broadcast your Eloquent events directly to your client-side application? Check out Laravel's model event broadcasting.Įloquent models dispatch several events, allowing you to hook into the following moments in a model's lifecycle: retrieved, creating, created, updating, updated, saving, saved, deleting, deleted, trashed, forceDeleting, forceDeleted, restoring, restored, and replicating. This method also accepts an optional attribute argument: The isClean method will determine if an attribute has remained unchanged since the model was retrieved. You may pass a specific attribute name or an array of attributes to the isDirty method to determine if any of the attributes are "dirty". The isDirty method determines if any of the model's attributes have been changed since the model was retrieved. This is because the models are never actually retrieved when issuing a mass update.Įloquent provides the isDirty, isClean, and wasChanged methods to examine the internal state of your model and determine how its attributes have changed from when the model was originally retrieved. When issuing a mass update via Eloquent, the saving, saved, updating, and updated model events will not be fired for the updated models. The update method returns the number of affected rows. The update method expects an array of column and value pairs representing the columns that should be updated. You may use the make:model Artisan command to generate a new model: Models typically live in the app\Models directory and extend the Illuminate\Database\Eloquent\Model class. To get started, let's create an Eloquent model. It's a great way to get a tour of everything the Laravel and Eloquent have to offer. The Laravel Bootcamp will walk you through building your first Laravel application using Eloquent. If you're new to Laravel, feel free to jump into the Laravel Bootcamp. For more information on configuring your database, check out the database configuration documentation. In addition to retrieving records from the database table, Eloquent models allow you to insert, update, and delete records from the table as well.īefore getting started, be sure to configure a database connection in your application's config/database.php configuration file. When using Eloquent, each database table has a corresponding "Model" that is used to interact with that table. Laravel includes Eloquent, an object-relational mapper (ORM) that makes it enjoyable to interact with your database.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |