- CakePHP 1.3 Application Development Cookbook
- Mariano Iglesias
- 251字
- 2021-04-09 22:04:17
This recipe shows how to use Containable
to change the conditions used to fetch data related to a model through a binding.
We need to have Containable
added to our models, and we also need some sample models and data to work with. Follow the recipe, Adding Containable to all models, and the Getting ready section of the recipe, Modifying binding parameters for a find.
If we want to obtain the first User
record together with the published Article
records that user owns, but ordered by latest articles first, and limiting some of the returned fields, we use the conditions
binding setting:
$user = $this->User->find('first', array(
'contain' => array(
'Article' => array(
'fields' => array('Article.title'),
'conditions' => array( 'Article.published' => 1 )
)
)
));
Using our sample data, the preceding query will result in the following array structure:
array( 'User' => array( 'id' => '1', 'name' => 'John Doe', 'email' => 'john.doe@example.com', ), 'Article' => array( array( 'title' => 'John\'s Post 1', 'user_id' => '1' ), array( 'title' => 'John\'s Post 2', 'user_id' => '1' ), array( 'title' => 'John\'s Post 4', 'user_id' => '1' ) ) )
The conditions binding setting is another binding parameter, such as those shown in the recipe, Modifying binding parameters for a find. As such, the Containable
behavior uses the built-in bindModel()
method defined in CakePHP's Model
class to alter the binding conditions defined in the contain
find operation.
- 我為PS狂 Photoshop照片處理一分鐘秘笈
- Quickstart Apache Axis2
- Instant MuseScore
- After Effects影視特效立體化教程:After Effects 2021(微課版)
- SOLIDWORKS 2020產品設計基本功特訓(第3版)
- 網店美工設計:Photoshop CC案例教程(視頻指導版)
- Microsoft Azure: Enterprise Application Development
- Joomla! E/Commerce with VirtueMart
- Plone 3 Theming
- Flash ActionScript 3.0互動設計項目教程
- Creo 5.0從入門到精通(第2版)
- OpenCms 7 Development
- Alfresco 3 Cookbook
- 中文版3ds Max 2014從入門到精通實用教程(微課版)
- pfSense 2 Cookbook