Я не использую сетку данных (или ArrayCollection в качестве dataProvider), поэтому, хотя решение @Jason Towne в целом работает, оно не было решением для моего конкретного случая.
Я решил проблему «не удалось удалить незафиксированные элементы», используя item вместо itemID для метода DELETE, управляемого данными, во Flex. Автоматически сгенерированный метод ActionScript Flash Builder и код PHP используют itemID в качестве параметра, который не работает с данными, управляемыми DELETE, пока ПОСЛЕ записи не сохранено в базе данных. Использование фактической ссылки item в качестве параметра в методе DELETE позволяет удалить зафиксированные и незафиксированные изменения. Затем PHP-код нужно будет изменить.
Я использую типизацию на стороне сервера, поэтому модифицированный код PHP (который очень похож на автоматически сгенерированный PHP-код FB) выглядит следующим образом:
/**
* Deletes the item corresponding to the passed primary key value from
* the table. Note: NOT using primary key anymore - use item reference.
*
* Add authorization or any logical checks for secure access to your data
*
* @param MessageScheduleItem $item
* @return void
*/
public function delete_messageScheduleItem($item) {
$stmt = mysqli_prepare($this->connection, "DELETE FROM $this->tablename WHERE ID = ?");
$this->throwExceptionOnError();
mysqli_stmt_bind_param($stmt, 'i', $item->ID);
.
.
... etc.
Код Flex тогда:
messageScheduleItemService.delete_messageScheduleItem(item);