Views
2 weeks ago

Doctrine_manual-1-2-en

Chapter 18: Hierarchical

Chapter 18: Hierarchical Data 280 // ... $category = Doctrine_Core::getTable('Category')->findOneByName('Child Category 1'); $category->getNode()->delete(); The above code calls $category->delete() internally. It's important to delete on the node and not on the record. Otherwise you may corrupt the tree. Deleting a node will also delete all descendants of that node. So make sure you move them elsewhere before you delete the node if you don't want to delete them. Moving a Node Moving a node is simple. Doctrine offers several methods for moving nodes around between trees: Listing 18-10 // test.php // ... $category = new Category(); $category->name = 'Root Category 2'; $category->save(); $categoryTable = Doctrine_Core::getTable('Category'); $treeObject = $categoryTable->getTree(); $treeObject->createRoot($category); $childCategory = $categoryTable->findOneByName('Child Category 1'); $childCategory->getNode()->moveAsLastChildOf($category); ... Below is a list of the methods available for moving nodes around: • moveAsLastChildOf($other) • moveAsFirstChildOf($other) • moveAsPrevSiblingOf($other) • moveAsNextSiblingOf($other). The method names should be self-explanatory to you. Examining a Node You can examine the nodes and what type of node they are by using some of the following functions: Listing 18-11 // test.php // ... $isLeaf = $category->getNode()->isLeaf(); $isRoot = $category->getNode()->isRoot(); The above used functions return true/false depending on whether or not they are a leaf or root node. ----------------- Brought to you by

Chapter 18: Hierarchical Data 281 Examining and Retrieving Siblings You can easily check if a node has any next or previous siblings by using the following methods: // test.php Listing 18-12 // ... $hasNextSib = $category->getNode()->hasNextSibling(); $hasPrevSib = $category->getNode()->hasPrevSibling(); You can also retrieve the next or previous siblings if they exist with the following methods: // test.php Listing 18-13 // ... $nextSib = $category->getNode()->getNextSibling(); $prevSib = $category->getNode()->getPrevSibling(); The above methods return false if no next or previous sibling exists. If you want to retrieve an array of all the siblings you can simply use the getSiblings() method: // test.php Listing 18-14 // ... $siblings = $category->getNode()->getSiblings(); Examining and Retrieving Descendants You can check if a node has a parent or children by using the following methods: // test.php Listing 18-15 // ... $hasChildren = $category->getNode()->hasChildren(); $hasParent = $category->getNode()->hasParent(); You can retrieve a nodes first and last child by using the following methods: // test.php Listing 18-16 // ... $firstChild = $category->getNode()->getFirstChild(); $lastChild = $category->getNode()->getLastChild(); Or if you want to retrieve the parent of a node: // test.php Listing 18-17 // ... $parent = $category->getNode()->getParent(); You can get the children of a node by using the following method: ----------------- Brought to you by

  • Page 1 and 2:

    Doctrine ORM for PHP Guide to Doctr

  • Page 3 and 4:

    Table of Contents iii Examples ....

  • Page 5 and 6:

    Table of Contents v Sample Queries

  • Page 7 and 8:

    Table of Contents vii Component Que

  • Page 9 and 10:

    Table of Contents ix Inserting a No

  • Page 11 and 12:

    Table of Contents xi Generating Mig

  • Page 13 and 14:

    Chapter 1: Introduction 13 Chapter

  • Page 15 and 16:

    Chapter 1: Introduction 15 layer de

  • Page 17 and 18:

    Chapter 1: Introduction 17 Further

  • Page 19 and 20:

    Chapter 2: Getting Started 19 Insta

  • Page 21 and 22:

    Chapter 2: Getting Started 21 Downl

  • Page 23 and 24:

    Chapter 2: Getting Started 23 In th

  • Page 25 and 26:

    Chapter 3: Introduction to Connecti

  • Page 27 and 28:

    Chapter 3: Introduction to Connecti

  • Page 29 and 30:

    Chapter 3: Introduction to Connecti

  • Page 31 and 32:

    Chapter 4: Configuration 31 $table-

  • Page 33 and 34:

    Chapter 4: Configuration 33 backtic

  • Page 35 and 36:

    Chapter 4: Configuration 35 class M

  • Page 37 and 38:

    Chapter 4: Configuration 37 // boot

  • Page 39 and 40:

    Chapter 5: Connections 39 Chapter 5

  • Page 41 and 42:

    Chapter 5: Connections 41 $conn = D

  • Page 43 and 44:

    Chapter 5: Connections 43 This is p

  • Page 45 and 46:

    Chapter 6: Introduction to Models 4

  • Page 47 and 48:

    Chapter 6: Introduction to Models 4

  • Page 49 and 50:

    Chapter 6: Introduction to Models 4

  • Page 51 and 52:

    Chapter 6: Introduction to Models 5

  • Page 53 and 54:

    Chapter 7: Defining Models 53 Chapt

  • Page 55 and 56:

    Chapter 7: Defining Models 55 } } /

  • Page 57 and 58:

    Chapter 7: Defining Models 57 class

  • Page 59 and 60:

    Chapter 7: Defining Models 59 Strin

  • Page 61 and 62:

    Chapter 7: Defining Models 61 class

  • Page 63 and 64:

    Chapter 7: Defining Models 63 class

  • Page 65 and 66:

    Chapter 7: Defining Models 65 $this

  • Page 67 and 68:

    Chapter 7: Defining Models 67 onUpd

  • Page 69 and 70:

    Chapter 7: Defining Models 69 // te

  • Page 71 and 72:

    Chapter 7: Defining Models 71 First

  • Page 73 and 74:

    Chapter 7: Defining Models 73 } } $

  • Page 75 and 76:

    Chapter 7: Defining Models 75 In ma

  • Page 77 and 78:

    Chapter 7: Defining Models 77 Here

  • Page 79 and 80:

    Chapter 7: Defining Models 79 class

  • Page 81 and 82:

    Chapter 7: Defining Models 81 Here

  • Page 83 and 84:

    Chapter 7: Defining Models 83 } } )

  • Page 85 and 86:

    Chapter 7: Defining Models 85 --- #

  • Page 87 and 88:

    Chapter 7: Defining Models 87 } { }

  • Page 89 and 90:

    Chapter 7: Defining Models 89 } } )

  • Page 91 and 92:

    Chapter 7: Defining Models 91 Some

  • Page 93 and 94:

    Chapter 7: Defining Models 93 Now w

  • Page 95 and 96:

    Chapter 7: Defining Models 95 # ...

  • Page 97 and 98:

    Chapter 7: Defining Models 97 Concl

  • Page 99 and 100:

    Chapter 8: Working with Models 99 $

  • Page 101 and 102:

    Chapter 8: Working with Models 101

  • Page 103 and 104:

    Chapter 8: Working with Models 103

  • Page 105 and 106:

    Chapter 8: Working with Models 105

  • Page 107 and 108:

    Chapter 8: Working with Models 107

  • Page 109 and 110:

    Chapter 8: Working with Models 109

  • Page 111 and 112:

    Chapter 8: Working with Models 111

  • Page 113 and 114:

    Chapter 8: Working with Models 113

  • Page 115 and 116:

    Chapter 8: Working with Models 115

  • Page 117 and 118:

    Chapter 8: Working with Models 117

  • Page 119 and 120:

    Chapter 8: Working with Models 119

  • Page 121 and 122:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 123 and 124:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 125 and 126:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 127 and 128:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 129 and 130:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 131 and 132:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 133 and 134:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 135 and 136:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 137 and 138:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 139 and 140:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 141 and 142:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 143 and 144:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 145 and 146:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 147 and 148:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 149 and 150:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 151 and 152:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 153 and 154:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 155 and 156:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 157 and 158:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 159 and 160:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 161 and 162:

    Chapter 9: DQL (Doctrine Query Lang

  • Page 163 and 164:

    Chapter 10: Component Overview 163

  • Page 165 and 166:

    Chapter 10: Component Overview 165

  • Page 167 and 168:

    Chapter 10: Component Overview 167

  • Page 169 and 170:

    Chapter 10: Component Overview 169

  • Page 171 and 172:

    Chapter 10: Component Overview 171

  • Page 173 and 174:

    Chapter 10: Component Overview 173

  • Page 175 and 176:

    Chapter 10: Component Overview 175

  • Page 177 and 178:

    Chapter 10: Component Overview 177

  • Page 179 and 180:

    Chapter 10: Component Overview 179

  • Page 181 and 182:

    Chapter 10: Component Overview 181

  • Page 183 and 184:

    Chapter 10: Component Overview 183

  • Page 185 and 186:

    Chapter 10: Component Overview 185

  • Page 187 and 188:

    Chapter 10: Component Overview 187

  • Page 189 and 190:

    Chapter 10: Component Overview 189

  • Page 191 and 192:

    Chapter 10: Component Overview 191

  • Page 193 and 194:

    Chapter 11: Native SQL 193 $users =

  • Page 195 and 196:

    Chapter 12: YAML Schema Files 195 C

  • Page 197 and 198:

    Chapter 12: YAML Schema Files 197 D

  • Page 199 and 200:

    Chapter 12: YAML Schema Files 199 p

  • Page 201 and 202:

    Chapter 12: YAML Schema Files 201 -

  • Page 203 and 204:

    Chapter 12: YAML Schema Files 203 O

  • Page 205 and 206:

    Chapter 12: YAML Schema Files 205 C

  • Page 207 and 208:

    Chapter 12: YAML Schema Files 207 o

  • Page 209 and 210:

    Chapter 13: Data Validation 209 Cha

  • Page 211 and 212:

    Chapter 13: Data Validation 211 # .

  • Page 213 and 214:

    Chapter 13: Data Validation 213 The

  • Page 215 and 216:

    Chapter 13: Data Validation 215 if

  • Page 217 and 218:

    Chapter 13: Data Validation 217 Her

  • Page 219 and 220:

    Chapter 13: Data Validation 219 # .

  • Page 221 and 222:

    Chapter 13: Data Validation 221 } e

  • Page 223 and 224:

    Chapter 13: Data Validation 223 } }

  • Page 225 and 226:

    Chapter 13: Data Validation 225 //

  • Page 227 and 228:

    Chapter 14: Data Hydrators 227 Chap

  • Page 229 and 230: Chapter 14: Data Hydrators 229 echo
  • Page 231 and 232: Chapter 15: Inheritance 231 Chapter
  • Page 233 and 234: Chapter 15: Inheritance 233 columns
  • Page 235 and 236: Chapter 15: Inheritance 235 name: s
  • Page 237 and 238: Chapter 15: Inheritance 237 // test
  • Page 239 and 240: Chapter 16: Behaviors 239 Chapter 1
  • Page 241 and 242: Chapter 16: Behaviors 241 Here is t
  • Page 243 and 244: Chapter 16: Behaviors 243 } $this->
  • Page 245 and 246: Chapter 16: Behaviors 245 The imple
  • Page 247 and 248: Chapter 16: Behaviors 247 } } ); )
  • Page 249 and 250: Chapter 16: Behaviors 249 $blogPost
  • Page 251 and 252: Chapter 16: Behaviors 251 Look how
  • Page 253 and 254: Chapter 16: Behaviors 253 length 25
  • Page 255 and 256: Chapter 16: Behaviors 255 $ php tes
  • Page 257 and 258: Chapter 16: Behaviors 257 Searchabl
  • Page 259 and 260: Chapter 16: Behaviors 259 // test.p
  • Page 261 and 262: Chapter 16: Behaviors 261 } } elsei
  • Page 263 and 264: Chapter 16: Behaviors 263 ) [name]
  • Page 265 and 266: Chapter 16: Behaviors 265 } public
  • Page 267 and 268: Chapter 17: Searching 267 Chapter 1
  • Page 269 and 270: Chapter 17: Searching 269 body LONG
  • Page 271 and 272: Chapter 17: Searching 271 • Strip
  • Page 273 and 274: Chapter 17: Searching 273 $ php tes
  • Page 275 and 276: Chapter 17: Searching 275 // test.p
  • Page 277 and 278: Chapter 18: Hierarchical Data 277 N
  • Page 279: Chapter 18: Hierarchical Data 279 i
  • Page 283 and 284: Chapter 18: Hierarchical Data 283 F
  • Page 285 and 286: Chapter 19: Data Fixtures 285 Chapt
  • Page 287 and 288: Chapter 19: Data Fixtures 287 class
  • Page 289 and 290: Chapter 19: Data Fixtures 289 Resou
  • Page 291 and 292: Chapter 19: Data Fixtures 291 --- #
  • Page 293 and 294: Chapter 20: Database Abstraction La
  • Page 295 and 296: Chapter 20: Database Abstraction La
  • Page 297 and 298: Chapter 20: Database Abstraction La
  • Page 299 and 300: Chapter 20: Database Abstraction La
  • Page 301 and 302: Chapter 20: Database Abstraction La
  • Page 303 and 304: Chapter 20: Database Abstraction La
  • Page 305 and 306: Chapter 21: Transactions 305 log 43
  • Page 307 and 308: Chapter 21: Transactions 307 try {
  • Page 309 and 310: Chapter 22: Event Listeners 309 Cha
  • Page 311 and 312: Chapter 22: Event Listeners 311 pub
  • Page 313 and 314: Chapter 22: Event Listeners 313 pos
  • Page 315 and 316: Chapter 22: Event Listeners 315 } {
  • Page 317 and 318: Chapter 22: Event Listeners 317 */
  • Page 319 and 320: Chapter 22: Event Listeners 319 FRO
  • Page 321 and 322: Chapter 22: Event Listeners 321 Ski
  • Page 323 and 324: Chapter 23: Caching 323 $cacheDrive
  • Page 325 and 326: Chapter 23: Caching 325 // bootstra
  • Page 327 and 328: Chapter 24: Migrations 327 Chapter
  • Page 329 and 330: Chapter 24: Migrations 329 array('t
  • Page 331 and 332:

    Chapter 24: Migrations 331 { } // .

  • Page 333 and 334:

    Chapter 24: Migrations 333 $options

  • Page 335 and 336:

    Chapter 24: Migrations 335 Up/Down

  • Page 337 and 338:

    Chapter 24: Migrations 337 Now you

  • Page 339 and 340:

    Chapter 25: Extensions 339 $ cd /pa

  • Page 341 and 342:

    Chapter 26: Utilities 341 $pager->g

  • Page 343 and 344:

    Chapter 26: Utilities 343 Currently

  • Page 345 and 346:

    Chapter 26: Utilities 345 Template

  • Page 347 and 348:

    Chapter 26: Utilities 347 Doctrine_

  • Page 349 and 350:

    Chapter 26: Utilities 349 // Possib

  • Page 351 and 352:

    Chapter 26: Utilities 351 // Genera

  • Page 353 and 354:

    Chapter 26: Utilities 353 You can r

  • Page 355 and 356:

    Chapter 26: Utilities 355 The above

  • Page 357 and 358:

    Chapter 27: Unit Testing 357 $ cd /

  • Page 359 and 360:

    Chapter 27: Unit Testing 359 } // .

  • Page 361 and 362:

    Chapter 27: Unit Testing 361 Common

  • Page 363 and 364:

    Chapter 28: Improving Performance 3

  • Page 365 and 366:

    Chapter 28: Improving Performance 3

  • Page 367 and 368:

    Chapter 28: Improving Performance 3

  • Page 369 and 370:

    Chapter 29: Technology 369 Doctrine

  • Page 371 and 372:

    Chapter 29: Technology 371 • Neve

  • Page 373 and 374:

    Chapter 30: Exceptions and Warnings

  • Page 375 and 376:

    Chapter 31: Real World Examples 375

  • Page 377 and 378:

    Chapter 31: Real World Examples 377

  • Page 379 and 380:

    Chapter 31: Real World Examples 379

  • Page 381 and 382:

    Chapter 32: Coding Standards 381 Ch

  • Page 383 and 384:

    Chapter 32: Coding Standards 383 Fu

  • Page 385 and 386:

    Chapter 32: Coding Standards 385 $s

  • Page 387 and 388:

    Chapter 32: Coding Standards 387 Fu

SQL Server Team-based Development - Red Gate Software
C2090-610 Real Exam BrainDumps Updated 2016
Tools for sequence data mining: HMMER (part 2)
Seminario_MongoDB
Presentation Download Available - Click Here - CA ERwin
Database Management Systems
Up-to-Date C_HANAIMP142 Exam BrainDumps
Many-Dimensional Schema Modeling - ftp12.us.freebsd.org
Beginning PHP6, Apache, MySQL® Web Development