这是我读过的文档,这就是我正在尝试的。首先,我建立了我的模型关联:
<?php
class Proveedor extends AppModel {
public $hasMany = 'Libro';
public $displayField = 'Nombre';
}
<?php
class Libro extends AppModel {
public $belongsTo = 'Proveedor';
}
接下来,我创建了我的控制器和我的动作函数:
public function filter($proveedorName = null) {
// proveedorName is a string: wrox, apress, oreilly, etc.
// I need to find all libros that have their 'Proveedor' as $proveedorName.
$this->set('libros', $this->Libro->find('all',
array('conditions' => array('Libros.Proveedor.Name' => $proveedorName))));
$this->set('proveedores', $this->Libro->Proveedor->find('list'));
}
这是弹出的错误消息:
Error: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Libros.Proveedor.Name' in 'where clause'
我的用例非常简单,从下拉列表中选择证明者并让网站返回libros
来自该供应商 ( ) 的书籍 ( )集合proveedor
。
就好像您访问:www.google.com/cars/filter/nissan
- 您想查看所有日产汽车。
相同的原则:www.google.com/libros/filter/apress
- 我想libros
从 Proveedor ( supplier
) Apress 获取所有书籍 ( )。
出于说明目的,在 C# 中使用 Entity Framework 和 Linq 我可以:
var books = db.Libros.Where(x => x.Proveedor.Name == "Apress");
我可以用 CakePHP 做类似的事情吗?