我试图让我的index()函数仅显示属于该个人登录用户的ExpenseClaims。Cakephp查找所有数据库错误
这是函数:
public function index() {
$this->ExpenseClaim->recursive = 0;
$currentUsersClaims = $this->ExpenseClaim->find('all', array('conditions' => array('ExpenseClaim.user_id ==' => $this->Auth->user('id'))));
$this->set('currentUsersClaims', $this->paginate());
}
这是我得到的错误:
数据库错误
错误:SQLSTATE [42000]:语法错误或访问冲突:1064您在您的SQL语法中有错误;检查对应于你的MySQL服务器版本使用附近的“== 3”在1号线
SQL Query: SELECT `ExpenseClaim`.`id`, `ExpenseClaim`.`user_id`, `ExpenseClaim`.`claim_status_id`, `ExpenseClaim`.`created`, `ExpenseClaim`.`modified`, `ExpenseClaim`.`approved`, `ExpenseClaim`.`approved_by`, `ExpenseClaim`.`date_submitted`, `User`.`id`, `User`.`username`, `User`.`password`, `User`.`group_id`, `User`.`name`, `User`.`address`, `User`.`department_id`, `User`.`mileage_rate`, `User`.`created`, `User`.`modified`, `ClaimStatus`.`id`, `ClaimStatus`.`name`, `ClaimStatus`.`created`, `ClaimStatus`.`modified` FROM `expenses`.`expense_claims` AS `ExpenseClaim` LEFT JOIN `expenses`.`users` AS `User` ON (`ExpenseClaim`.`user_id` = `User`.`id`) LEFT JOIN `expenses`.`claim_statuses` AS `ClaimStatus` ON (`ExpenseClaim`.`claim_status_id` = `ClaimStatus`.`id`) WHERE `ExpenseClaim`.`user_id` == 3
原谅我,因为我可能丢失服用点明显正确的语法手册,但我是很新,蛋糕。
谢谢 - 完美的工作。你可以exmaple ExpenseClaim.user_id =?位给我。为什么=?而不是仅仅= – 2012-08-02 13:46:42
问号被转义/用数组的第二个变量替换,现在我实际上已经移除了它,因为基本的'var = var'不是必须的,但它需要用于像'BETWEEN starttime AND endTime'。 [在这里阅读fr更多信息](http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#complex-find-conditions) – Dunhamzzz 2012-08-02 13:54:50
非常感谢您的帮助:) – 2012-08-02 13:57:50