Methods summary
	
		| 
			 public 
			
			
			 |  | 
	
		| 
			 public 
			array
			
			 | 
		#
		find( string $type, string $sql = NULL, array $bindings = array()  )
			Finds a bean using a type and a where clause (SQL).
As with most Query tools in RedBean you can provide values to
be inserted in the SQL statement by populating the value
array parameter; you can either use the question mark notation
or the slot-notation (:keyname). 
			Finds a bean using a type and a where clause (SQL).
As with most Query tools in RedBean you can provide values to
be inserted in the SQL statement by populating the value
array parameter; you can either use the question mark notation
or the slot-notation (:keyname). Parameters
					$typetype   the type of bean you are looking for$sqlsql    SQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturns
					array
				 | 
	
		| 
			 public 
			array
			
			 | 
		#
		findAndExport( string $type, string $sql = NULL, array $bindings = array()  )
			Like find() but also exports the beans as an array.
This method will perform a find-operation. For every bean
in the result collection this method will call the export() method.
This method returns an array containing the array representations
of every bean in the result set. 
			Like find() but also exports the beans as an array.
This method will perform a find-operation. For every bean
in the result collection this method will call the export() method.
This method returns an array containing the array representations
of every bean in the result set. Parameters
					$typetype   the type of bean you are looking for$sqlsql    SQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturns
					array
				 See | 
	
		| 
			 public 
			RedBeanPHP\OODBBean | 
		#
		findOne( string $type, string $sql = NULL, array $bindings = array()  )
			Like find() but returns just one bean instead of an array of beans.
This method will return only the first bean of the array.
If no beans are found, this method will return NULL. 
			Like find() but returns just one bean instead of an array of beans.
This method will return only the first bean of the array.
If no beans are found, this method will return NULL. Parameters
					$typetype   the type of bean you are looking for$sqlsql    SQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturnsSee | 
	
		| 
			 public 
			RedBeanPHP\OODBBean | 
		#
		findLast( string $type, string $sql = NULL, array $bindings = array()  )
			Like find() but returns the last bean of the result array.
Opposite of Finder::findLast().
If no beans are found, this method will return NULL. 
			Like find() but returns the last bean of the result array.
Opposite of Finder::findLast().
If no beans are found, this method will return NULL. Parameters
					$typethe type of bean you are looking for$sqlSQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturnsSee | 
	
		| 
			 public 
			array
			
			 | 
		#
		findOrDispense( string $type, string $sql = NULL, array $bindings = array()  )
			Tries to find beans of a certain type,
if no beans are found, it dispenses a bean of that type. 
			Tries to find beans of a certain type,
if no beans are found, it dispenses a bean of that type. Parameters
					$typethe type of bean you are looking for$sqlSQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturns
					array
				 See | 
	
		| 
			 public 
			RedBeanPHP\BeanCollection | 
		#
		findCollection( string $type, string $sql, array $bindings = array()  )
			Finds a BeanCollection using the repository.
A bean collection can be used to retrieve one bean at a time using
cursors - this is useful for processing large datasets. A bean collection
will not load all beans into memory all at once, just one at a time. 
			Finds a BeanCollection using the repository.
A bean collection can be used to retrieve one bean at a time using
cursors - this is useful for processing large datasets. A bean collection
will not load all beans into memory all at once, just one at a time. Parameters
					$typethe type of bean you are looking for$sqlSQL query to find the desired bean, starting right after WHERE clause$bindingsvalues array of values to be bound to parameters in queryReturns | 
	
		| 
			 public 
			RedBeanPHP\OODBBean | 
		#
		findOrCreate( string $type, array $like = array()  )
			Finds or creates a bean.
Tries to find a bean with certain properties specified in the second
parameter ($like). If the bean is found, it will be returned.
If multiple beans are found, only the first will be returned.
If no beans match the criteria, a new bean will be dispensed,
the criteria will be imported as properties and this new bean
will be stored and returned. 
			Finds or creates a bean.
Tries to find a bean with certain properties specified in the second
parameter ($like). If the bean is found, it will be returned.
If multiple beans are found, only the first will be returned.
If no beans match the criteria, a new bean will be dispensed,
the criteria will be imported as properties and this new bean
will be stored and returned. Format of criteria set: property => value
The criteria set also supports OR-conditions: property => array( value1, orValue2 ) Parameters
					$typetype of bean to search for$likecriteria set describing bean to search forReturns | 
	
		| 
			 public 
			array
			
			 | 
		#
		findLike( string $type, array $conditions = array(), string $sql = ''  )
			Finds beans by its type and a certain criteria set. 
			Finds beans by its type and a certain criteria set. Format of criteria set: property => value
The criteria set also supports OR-conditions: property => array( value1, orValue2 ) If the additional SQL is a condition, this condition will be glued to the rest
of the query using an AND operator. Note that this is as far as this method
can go, there is no way to glue additional SQL using an OR-condition.
This method provides access to an underlying mechanism in the RedBeanPHP architecture
to find beans using criteria sets. However, please do not use this method
for complex queries, use plain SQL instead ( the regular find method ) as it is
more suitable for the job. This method is
meant for basic search-by-example operations. Parameters
					$typetype of bean to search for$conditionscriteria set describing the bean to search for$sqladditional SQL (for sorting)Returns
					array
				 | 
	
		| 
			 public 
			array
			
			 | 
		#
		findMulti( string|array $types, string|array $sql, array $bindings = array(), array $remappings = array(), string $queryTemplate = ' %s.%s AS %s__%s'  )
			Returns a hashmap with bean arrays keyed by type using an SQL
query as its resource. Given an SQL query like 'SELECT movie.*, review.* FROM movie... JOIN review'
this method will return movie and review beans. 
			Returns a hashmap with bean arrays keyed by type using an SQL
query as its resource. Given an SQL query like 'SELECT movie.*, review.* FROM movie... JOIN review'
this method will return movie and review beans. Example: $stuff = $finder->findMulti('movie,review', '
         SELECT movie.*, review.* FROM movie
         LEFT JOIN review ON review.movie_id = movie.id');After this operation, $stuff will contain an entry 'movie' containing all
movies and an entry named 'review' containing all reviews (all beans).
You can also pass bindings. If you want to re-map your beans, so you can use $movie->ownReviewList without
having RedBeanPHP executing an SQL query you can use the fourth parameter to
define a selection of remapping closures. The remapping argument (optional) should contain an array of arrays.
Each array in the remapping array should contain the following entries: array(
    'a'       => TYPE A
   'b'       => TYPE B
   'matcher' => MATCHING FUNCTION ACCEPTING A, B and ALL BEANS
   'do'      => OPERATION FUNCTION ACCEPTING A, B, ALL BEANS, ALL REMAPPINGS
)Using this mechanism you can build your own 'preloader' with tiny function
snippets (and those can be re-used and shared online of course). Example: array(
    'a'       => 'movie'     
   'b'       => 'review'    
   'matcher' => function( $a, $b ) {
      return ( $b->movie_id == $a->id );  
   }
   'do'      => function( $a, $b ) {
      $a->noLoad()->ownReviewList[] = $b; 
      $a->clearHistory();                 
   }
)The Query Template parameter is optional as well but can be used to
set a different SQL template (sprintf-style) for processing the original query. Parameters
					$typesa list of types (either array or comma separated string)$sql$sqlOrArr      an SQL query or an array of prefetched records$bindingsoptional, bindings for SQL query$remappingsoptional, an array of remapping arrays$queryTemplateoptional, query templateReturns
					array
				 Note
						the SQL query provided IS NOT THE ONE used internally by this function,
this function will pre-process the query to get all the data required to find the beans. if you use the 'book.' notation make SURE you're
selector starts with a SPACE. ' book.' NOT ',book.*'. This is because
it's actually an SQL-like template SLOT, not real SQL. 
						instead of an SQL query you can pass a result array as well.
				 |