Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

nyanorm [2019/08/05 11:59]
nightfly
nyanorm [2019/08/19 18:12] (текущий)
nightfly [Что еще?]
Строка 139: Строка 139:
  
 ===== Кумулятивная структура data() ===== ===== Кумулятивная структура data() =====
-......+ 
 +Кумулятивная структура **data** предназначена для хранения данных которые будут в дальнейшем использованы при вызове методов **create()** или **save()**Собственно имеет она только два параметра, а именно **field** и **value**Довольно не трудно догадаться как ее использовать: 
 + 
 +<code php> 
 +$object->data('somefield', 'new value'); 
 +$object->data('anotherfield', 'тоже какие-то данные'); 
 +</code>
  
 ===== Создание и изменение записей ===== ===== Создание и изменение записей =====
-......+ 
 +Помните кумулятивную структуру **data()**?  Она нам потребуется для создания записей в модели либо изменения существующихДавайте создадим новую запись приблизительно для такой таблички: 
 + 
 +<code sql> 
 +CREATE TABLE IF NOT EXISTS `someobjects` ( 
 +  `id` int(11) NOT NULL AUTO_INCREMENT, 
 +  `name` varchar(255) NOT NULL, 
 +  `text` text, 
 +  PRIMARY KEY (`id`) 
 +) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; 
 +</code> 
 + 
 +Все очень прямолинейно. 
 + 
 +<code php> 
 +$object = new nya_someobjects(); 
 +$object->data('name', 'а это типа имя'); 
 +$object->data('text', 'это типа текст записи'); 
 +$object->create(); 
 +</code> 
 + 
 +Заметьте, мы не указывали ручками NULL для автоинкрементного поля id, как так? А так, что у метода **create()** по умолчанию установлен параметр $autoAiId=true делающий это неявноЕсли в вашей табличке нету автоинкрементного поля `id` или другого подобного primary key, вы должны установить этот параметр в falseСобственно имя поля главного ключа таблички вы всегда можете переназначить при помощи наследованияОн содержится в протектед проперти **defaultPk**  
 +\\ 
 +\\ 
 +Окей, запись создать мы создали, а как получить ее id? Для этого есть удобный метод **getLastId()** получающий последний **defaultPk** из таблички. 
 +Вот как это работает: 
 +<code php> 
 +deb($object->getLastId()); // ой... возвращает 15 
 +</code> 
 + 
 +Окей, допустим мы внезапно захотели теперь изменить все или какое-то из полей в этой табличке. как быть? Все точно так-же как и с **create()** только при помощи **save()** но теперь нам еще понадобиться **where()**. Допустим мы будем редактировать последнюю запись в этой табличке: 
 +<code php> 
 +$idToModify=$object->getLastId(); 
 +$object->data('text', 'воу, это же новое значение для text!'); 
 +$object->where('id', '=', $idToModify); 
 +$object->save(); 
 +</code> 
  
 ===== Включение режима отладки ===== ===== Включение режима отладки =====
Строка 176: Строка 219:
  
 ===== Что еще? ===== ===== Что еще? =====
-**Блин.. столько писанины. Никто же не поможет, правда?** Короче вот пока что вам практические примеры использования этого в виде хеллоуворлда. Но так как я хеллоуворлды писать не умею, вот вам тудушка. Как говорят умные люди - не умеешь писать хеллоуворлды - пиши тудушки.+Короче вот пока что вам практические примеры использования этого в виде хеллоуворлда. Но так как я хеллоуворлды писать не умею, вот вам тудушка. Как говорят умные люди - не умеешь писать хеллоуворлды - пиши тудушки.
  
 Работать наш TODO-list будет на следующей табличке в БД: Работать наш TODO-list будет на следующей табличке в БД:
nyanorm.1564995550.txt.gz · Последние изменения: 2019/08/05 11:59 — nightfly
 
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: CC Attribution-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki