我有一个包含数据的潜在客户表,其中还包含用户输入此数据的信息。现在我想创建一个过滤器,在选择特定用户时,仅显示他的数据。如何在 cakephp 中执行此操作。请帮忙。
提前致谢
用户数据库
CREATE TABLE IF NOT EXISTS `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`fname` varchar(100) DEFAULT NULL,
`lname` varchar(100) DEFAULT NULL,
`username` varchar(100) NOT NULL,
`password` varchar(50) NOT NULL,
`email` varchar(100) DEFAULT NULL,
`phone` varchar(11) DEFAULT NULL,
`role` varchar(100) NOT NULL,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
主席表
CREATE TABLE IF NOT EXISTS `leads` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`account_id` int(11) NOT NULL,
`name` varchar(200) DEFAULT NULL,
`email` varchar(100) DEFAULT NULL,
`board_number` varchar(11) DEFAULT NULL COMMENT 'board number',
`mobile_number` varchar(11) DEFAULT NULL COMMENT 'mobile number',
`requirements` varchar(1000) DEFAULT NULL,
`total_price_quoted` int(11) DEFAULT NULL COMMENT 'total price quoted',
`our_price` int(11) DEFAULT NULL COMMENT 'our price',
`margin` int(11) DEFAULT NULL,
`closing_month` varchar(100) DEFAULT NULL COMMENT 'closing month',
`probablity` varchar(100) DEFAULT NULL,
`status_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`date_added` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=24 ;
控制器代码LeadController.php
public function user_filter() {
//$this->render('filter');
$this->loadModel('User');
$this->User->recursive = 0;
$userFilter = $this->User->find('all',array(
'fields' => array('User.username')
));
$this->set('userFilter', $userFilter);
return $userFilter;
}
//查看/ filterMenu.ctp //此处列出的用户的下拉菜单
<?php
$userFilters = $this->requestAction(
array(
'controller' => 'leads',
'action' => 'user_filter'
)
);
?>
<ul class="dropdown-menu">
<?php foreach ($userFilters as $userFilter): ?>
<li>
<?php
echo $this->Html->link($userFilter['User']['username'],array(
'controller'=>'leads',
'action'=>'user_filter'
));
echo "<\n>";
?>
</li>
<?php endforeach; ?>
</ul
我想创建该特定用户的视图。
答案 0 :(得分:0)
您无法通过下拉菜单提供链接,您必须使用javascript指向页面。
显示来自特定用户的所有潜在客户,将用户ID传递给该函数并使用用户ID获取数据。
public function user_filter($id = null) {
if ($id){
$leads = $this->Lead->find('all', array('conditions' => array('Lead.user_id' => $id)));
}else{
$leads = $this->Lead->find('all');
}
$this->loadModel('User');
$this->User->recursive = 0;
$userFilter = $this->User->find('all',array(
'fields' => array('User.username')
));
$this->set('leads', $leads);
$this->set('userFilter', $userFilter);
return $userFilter;
}
希望这会对你有所帮助。