<?php
class Film extends AppModel {
var $name = 'Film' ;
var $hasMany = array(
'FilmPicture' => array( 'className' => 'FilmPicture' ,
'foreignKey' => 'film_id' ,
),
'FilmVariant' => array( 'className' => 'FilmVariant' ,
'foreignKey' => 'film_id' ,
),
);
var $hasAndBelongsToMany = array(
'Country' => array( 'className' => 'Country' ,
'joinTable' => 'countries_films' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'country_id' ,
),
'Genre' => array( 'className' => 'Genre' ,
'joinTable' => 'films_genres' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'genre_id' ,
),
'Person' => array( 'className' => 'Person' ,
'joinTable' => 'films_persons' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'person_id' ,
),
'Publisher' => array( 'className' => 'Publisher' ,
'joinTable' => 'films_publishers' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'publisher_id' ,
),
);
var $belongsTo = array(
'FilmType' => array( 'className' => 'FilmType' ,
'foreignKey' => 'film_type_id' ,
)
);
var $hasOne = array(
'MediaRating' => array( 'className' => 'MediaRating' ,
'foreignKey' => 'object_id' ,
'conditions' => 'MediaRating.type="film"' ,
)
);
var $actsAs = array( 'Containable' );
}
?>
<?php
class Film extends AppModel {
var $name = 'Film' ;
var $hasMany = array(
'FilmPicture' => array( 'className' => 'FilmPicture' ,
'foreignKey' => 'film_id' ,
),
'FilmVariant' => array( 'className' => 'FilmVariant' ,
'foreignKey' => 'film_id' ,
),
);
var $hasAndBelongsToMany = array(
'Country' => array( 'className' => 'Country' ,
'joinTable' => 'countries_films' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'country_id' ,
),
'Genre' => array( 'className' => 'Genre' ,
'joinTable' => 'films_genres' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'genre_id' ,
),
'Person' => array( 'className' => 'Person' ,
'joinTable' => 'films_persons' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'person_id' ,
),
'Publisher' => array( 'className' => 'Publisher' ,
'joinTable' => 'films_publishers' ,
'foreignKey' => 'film_id' ,
'associationForeignKey' => 'publisher_id' ,
),
);
var $belongsTo = array(
'FilmType' => array( 'className' => 'FilmType' ,
'foreignKey' => 'film_type_id' ,
)
);
var $hasOne = array(
'MediaRating' => array( 'className' => 'MediaRating' ,
'foreignKey' => 'object_id' ,
'conditions' => 'MediaRating.type="film"' ,
)
);
var $actsAs = array( 'Containable' );
}
?>
<?php
class FilmVariant extends AppModel {
var $name = 'FilmVariant' ;
var $belongsTo = array(
'Film' ,
'VideoType'
);
var $hasMany = array(
'FilmFile' ,
'Track'
);
}
?>
<?php
class FilmVariant extends AppModel {
var $name = 'FilmVariant' ;
var $belongsTo = array(
'Film' ,
'VideoType'
);
var $hasMany = array(
'FilmFile' ,
'Track'
);
}
?>
<?php
var $actsAs = array( 'Containable' );
?>
<?php
$this -> Film -> Behaviors -> attach ( 'Containable' );
?>
<?php
$this -> Film -> recursive = 2 ;
$this -> Film -> find ( 'all' )
?>
<?php
$this -> Film -> contain ( 'Country' );
$this -> Film -> find ( 'all' );
// , find()
$this -> Film -> find ( 'all' , array( 'contain' => 'Country' ));
?>
<?php
$this -> Film -> contain ( 'Country.title' );
$this -> Film -> find ( 'all' );
// , find()
$this -> Film -> find ( 'all' , array( 'contain' => 'Country.title' ));
?>
<?php
$this -> Film -> find ( 'all' ,
array( 'contain' => 'Country.title' ,
'FilmPicture' =>
array( 'conditions' => array( 'type' => 'poster' ),
'fields' => array( 'FilmPicture.file_name' , 'FilmPicture.id' ))));
?>
<?php
$this -> paginate = array( 'Film' =>
array( 'contain' =>
array( 'FilmType' ,
'Genre' ,
'FilmPicture' => array( 'conditions' => array( 'type' => 'poster' )),
'Country' ,
'Person' => array( 'conditions' => array( 'FilmsPerson.profession_id' => array( 1 , 3 , 4 ))),
'MediaRating' ),
'order' => array( 'Film.modified DESC' ),
'conditions' => array( 'Film.active' => 1 ),
'limit' => 12 ));
$this -> set ( 'films' , $this -> paginate ());
?>
<?php
$this -> Film -> recursive = 2 ;
$this -> Film -> contain (array( 'FilmType' ,
'Genre' ,
'FilmPicture' ,
'Country' ,
'FilmVariant' => array( 'FilmFile' , 'VideoType' ),
'MediaRating' ));
$film = $this -> Film -> read ( null , $id );
?>
Source: https://habr.com/ru/post/38675/
All Articles