Aug 21

Cakephp 学习日志 (二) 不指定

bkkkd , 07:54 , 开发应用 , 评论(0) , 引用(0) , 阅读(42011) , Via 本站原创 | |

findAllBy<fieldName>
  string $value

这是一个非常有魔力的方法,你可以看成是一个快速按照某个属性检索数据的方法,下面是在controller中的一段示例代码:

<?
$this->Post->findByTitle('My First Blog Post');  
$this->Author->findByLastName('Rogers');  
$this->Property->findAllByState('AZ');  
$this->Specimen->findAllByKingdom('Animalia');  ?>


返回类型和find() findAll()一样,是一个array。

findNeighbours
  string $conditions
  array $field
  string $value

这个方法首先是通过conditions过滤获取结果集,然后根据field=value查找符合的对象(仅包含$field中指定的属性),最终返回该对象以及该对象的上一个对象和下一个对象。这在诸如相册这样的应用场景中将会非常有作用,你可以方便的获取当前相片,上一张和下一张这样的结果集合。注意:该方法只能作用于数值型和日期时间型属性。下面是示例代码:
<?
class ImagesController extends AppController  
{  
     function view($id)  
     {  
         // Say we want to show the image...  
  
         $this->set('image', $this->Image->find("id = $id");  
  
         // But we also want the previous and next images...  
  
         $this->set('neighbours', $this->Image->findNeighbours(null, 'id', $id);  
  
     }  
}  ?>

我们拿到了包含一个完整$image['Image']对象的array,以及$neighbours['prev']['Image']['id']和$neighbours['next']['Image']['id']。


field
  string $name
  string $conditions
  string $order

返回conditions过滤后按order排序的第一个结果中的name属性值,返回类型为string。

findCount
  string $conditions

返回conditions过滤后结果集的数量。即select count .....


generateList
  string $conditions
  string $order
  int    $limit
  string $keyPath
  string $valuePath

generateList方法可以非常快捷的获取一个key-value这样的list,其实就是其他语言中的map类型,在web领域中,下拉框可能将是该方法最大的受益者。$conditions, $order 和 $limit这3个参数的用法和findAll()没有区别,$keyPath 和 $valuePath是model中用来填充结果集中key和value的属性。举个例子,在权限操作中,角色的定义往往是id - name这样的组合,参见下面的示例代码:

<?
$this->set(  
     'Roles',  
     $this->Role->generateList(null, 'role_name ASC', null, '{n}.Role.id', '{n}.Role.role_name')  
);  
  
//This would return something like:  
array(  
     '1' => 'Account Manager',  
     '2' => 'Account Viewer',  
     '3' => 'System Manager',  
     '4' => 'Site Visitor'  
);
?>

内文分页: [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16]
Tags:
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   游客无需密码
网址   电邮   [注册]