Views
1 week ago

Doctrine_manual-1-2-en

Chapter 7: Defining

Chapter 7: Defining Models 66 someblob bytea The schema will create the following database table in Mysql: Field Type id char(32) someint integer sometime time sometext varchar(12) somedate date sometimestamp timestamp someboolean tinyint(1) somedecimal decimal(18,2) somefloat double someclob longtext someblob longblob Relationships Introduction In Doctrine all record relations are being set with Doctrine_Record::hasMany, Doctrine_Record::hasOne methods. Doctrine supports almost all kinds of database relations from simple one-to-one foreign key relations to join table self-referencing relations. Unlike the column definitions the Doctrine_Record::hasMany and Doctrine_Record::hasOne methods are placed within a method called setUp(). Both methods take two arguments: the first argument is a string containing the name of the class and optional alias, the second argument is an array consisting of relation options. The option array contains the following keys: Name Optional Description local No The local field of the relation. Local field is the linked field in the defining class. foreign No The foreign field of the relation. Foreign field is the linked field in the linked class. refClass Yes The name of the association class. This is only needed for many-tomany associations. owningSide Yes Set to boolean true to indicate the owning side of the relation. The owning side is the side that owns the foreign key. There can only be one owning side in an association between two classes. Note that this option is required if Doctrine can't guess the owning side or it's guess is wrong. An example where this is the case is when both 'local' and 'foreign' are part of the identifier (primary key). It never hurts to specify the owning side in this way. onDelete Yes The onDelete integrity action that is applied on the foreign key constraint when the tables are created by Doctrine. ----------------- Brought to you by

Chapter 7: Defining Models 67 onUpdate Yes The onUpdate integrity action that is applied on the foreign key constraint when the tables are created by Doctrine. cascade Yes Specify application level cascading operations. Currently only delete is supported So lets take our first example, say we have two classes Forum_Board and Forum_Thread. Here Forum_Board has many Forum_Threads, hence their relation is one-to-many. We don't want to write Forum_ when accessing relations, so we use relation aliases and use the alias Threads. First lets take a look at the Forum_Board class. It has three columns: name, description and since we didn't specify any primary key, Doctrine auto-creates an id column for it. We define the relation to the Forum_Thread class by using the hasMany() method. Here the local field is the primary key of the board class whereas the foreign field is the board_id field of the Forum_Thread class. // models/Forum_Board.php Listing 7-42 class Forum_Board extends Doctrine_Record { public function setTableDefinition() { $this->hasColumn('name', 'string', 100); $this->hasColumn('description', 'string', 5000); } } public function setUp() { $this->hasMany('Forum_Thread as Threads', array( 'local' => 'id', 'foreign' => 'board_id' ) ); } Notice the as keyword being used above. This means that the Forum_Board has a many relationship defined to Forum_Thread but is aliased as Threads. Here is the same example in YAML format. You can read more about YAML in the YAML Schema Files (page 195) chapter: --- # schema.yml Listing 7-43 # ... Forum_Board: columns: name: string(100) description: string(5000) Then lets have a peek at the Forum_Thread class. The columns here are irrelevant, but pay attention to how we define the relation. Since each Thread can have only one Board we are using the hasOne() method. Also notice how we once again use aliases and how the local column here is board_id while the foreign column is the id column. ----------------- 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: Chapter 7: Defining Models 65 $this
  • 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 and 280:

    Chapter 18: Hierarchical Data 279 i

  • Page 281 and 282:

    Chapter 18: Hierarchical Data 281 E

  • 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

Zend Framework 1 + Doctrine 2
SQL Server Team-based Development - Red Gate Software
Tools for sequence data mining: HMMER (part 2)
codeigniter_tutorial
dwh_tutorial
Open Data
XML - Ken North Computing
2 MB PDF
Lecture on MySQL/PHP - DAIICT Intranet
Mysql-php.pdf lecture - DAIICT Intranet
Whats new in Doctrine 2.0
Beginning Java EE 7
C2140-132-demo
C2090-610 Real Exam BrainDumps Updated 2016
Presentation Slides - INFORMS NY
Learning Laravel's Eloquent
Mise en page 1 - Conform
Performance Tuning with SQL Server Dynamic Management Views
PM - 8 - Alan McMorran_Model Driven Transformation ... - CIMug
Seminario_MongoDB
Mise en page 1 - Defender
슬라이드 1
Layout 1 (Page 1) - AstroGrid wiki
1. 2. - L'OCCITANE en Provence | Indonesia
1-Introduction
Education Industry Mailing List (1)
Layout 1 (Page 2) - Arbordeck
Database Modeling and Design
PHP Course
Real Estate Industry Email List (1)