This method performs the following steps in order:
1. call [[beforeValidate()]] when $runValidation is true. If validation
fails, it will skip the rest of the steps;
2. call [[afterValidate()]] when $runValidation is true.
3. call [[beforeSave()]]. If the method returns false, it will skip the
rest of the steps;
4. insert the record into collection. If this fails, it will skip the rest of the steps;
5. call [[afterSave()]];
In the above step 1, 2, 3 and 5, events [[EVENT_BEFORE_VALIDATE]],
[[EVENT_BEFORE_INSERT]], [[EVENT_AFTER_INSERT]] and [[EVENT_AFTER_VALIDATE]]
will be raised by the corresponding methods.
Only the [[dirtyAttributes|changed attribute values]] will be inserted into database.
If the primary key is null during insertion, it will be populated with the actual
value after insertion.
For example, to insert a customer record:
php
$customer = new Customer();
$customer->name = $name;
$customer->email = $email;
$customer->insert();
public insert ( boolean $runValidation = true, array $attributes = null ) : boolean | ||
$runValidation | boolean | whether to perform validation before saving the record. If the validation fails, the record will not be inserted into the collection. |
$attributes | array | list of attributes that need to be saved. Defaults to null, meaning all attributes that are loaded will be saved. |
return | boolean | whether the attributes are valid and the record is inserted successfully. |