From f38be747d132d754801c46ee3df15f8c27a03762 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 1 Mar 2021 18:36:47 +0300 Subject: initial for idiorm --- vendor/j4mie/idiorm/docs/models.rst | 161 ++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100644 vendor/j4mie/idiorm/docs/models.rst (limited to 'vendor/j4mie/idiorm/docs/models.rst') diff --git a/vendor/j4mie/idiorm/docs/models.rst b/vendor/j4mie/idiorm/docs/models.rst new file mode 100644 index 000000000..d72e27d7d --- /dev/null +++ b/vendor/j4mie/idiorm/docs/models.rst @@ -0,0 +1,161 @@ +Models +====== + +Getting data from objects +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Once you've got a set of records (objects) back from a query, you can +access properties on those objects (the values stored in the columns in +its corresponding table) in two ways: by using the ``get`` method, or +simply by accessing the property on the object directly: + +.. code-block:: php + + find_one(5); + + // The following two forms are equivalent + $name = $person->get('name'); + $name = $person->name; + +You can also get the all the data wrapped by an ORM instance using the +``as_array`` method. This will return an associative array mapping +column names (keys) to their values. + +The ``as_array`` method takes column names as optional arguments. If one +or more of these arguments is supplied, only matching column names will +be returned. + +.. code-block:: php + + create(); + + $person->first_name = 'Fred'; + $person->surname = 'Bloggs'; + $person->age = 50; + + // Returns array('first_name' => 'Fred', 'surname' => 'Bloggs', 'age' => 50) + $data = $person->as_array(); + + // Returns array('first_name' => 'Fred', 'age' => 50) + $data = $person->as_array('first_name', 'age'); + +Updating records +~~~~~~~~~~~~~~~~ + +To update the database, change one or more of the properties of the +object, then call the ``save`` method to commit the changes to the +database. Again, you can change the values of the object's properties +either by using the ``set`` method or by setting the value of the +property directly. By using the ``set`` method it is also possible to +update multiple properties at once, by passing in an associative array: + +.. code-block:: php + + find_one(5); + + // The following two forms are equivalent + $person->set('name', 'Bob Smith'); + $person->age = 20; + + // This is equivalent to the above two assignments + $person->set(array( + 'name' => 'Bob Smith', + 'age' => 20 + )); + + // Syncronise the object with the database + $person->save(); + +Properties containing expressions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +It is possible to set properties on the model that contain database +expressions using the ``set_expr`` method. + +.. code-block:: php + + find_one(5); + $person->set('name', 'Bob Smith'); + $person->age = 20; + $person->set_expr('updated', 'NOW()'); + $person->save(); + +The ``updated`` column's value will be inserted into query in its raw +form therefore allowing the database to execute any functions referenced +- such as ``NOW()`` in this case. + +Creating new records +~~~~~~~~~~~~~~~~~~~~ + +To add a new record, you need to first create an "empty" object +instance. You then set values on the object as normal, and save it. + +.. code-block:: php + + create(); + + $person->name = 'Joe Bloggs'; + $person->age = 40; + + $person->save(); + +After the object has been saved, you can call its ``id()`` method to +find the autogenerated primary key value that the database assigned to +it. + +Properties containing expressions +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +It is possible to set properties on the model that contain database +expressions using the ``set_expr`` method. + +.. code-block:: php + + create(); + $person->set('name', 'Bob Smith'); + $person->age = 20; + $person->set_expr('added', 'NOW()'); + $person->save(); + +The ``added`` column's value will be inserted into query in its raw form +therefore allowing the database to execute any functions referenced - +such as ``NOW()`` in this case. + +Checking whether a property has been modified +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +To check whether a property has been changed since the object was +created (or last saved), call the ``is_dirty`` method: + +.. code-block:: php + + is_dirty('name'); // Returns true or false + +Deleting records +~~~~~~~~~~~~~~~~ + +To delete an object from the database, simply call its ``delete`` +method. + +.. code-block:: php + + find_one(5); + $person->delete(); + +To delete more than one object from the database, build a query: + +.. code-block:: php + + where_equal('zipcode', 55555) + ->delete_many(); + -- cgit v1.2.3