首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1146表'Accounting.users‘不存在蛋糕\数据库\

1146表'Accounting.users‘不存在蛋糕\数据库\
EN

Stack Overflow用户
提问于 2016-01-31 16:03:47
回答 2查看 503关注 0票数 0

我和cakephp3一起工作。我想做个登录页面。会计数据库中的表名为“用户”。

这是我的密码:

代码语言:javascript
复制
<?php
namespace App\Controller;

use App\Controller\AppController;

class UsersController extends AppController {

public function login() {

    if ($this->request->is('post')) {
        $data = $this->request->data;
        $cnt = $data->Users->find()
                ->count();
        if ($cnt > 0) {
            $this->redirect(['action' => 'index']);
        } else {
            $this->set('error', 'username or password is incorrct ');
        }
    }
}}

这是Users.php

代码语言:javascript
复制
<?php

namespace App\Model\Table;

use Cake\ORM\Table;

class UsersTable extends Table {

}

在登录页面登录后:

错误:调用非对象上的成员函数find()

在你看来,是什么问题。

EN

回答 2

Stack Overflow用户

发布于 2016-01-31 18:42:01

$data不是表对象。

代码语言:javascript
复制
    $data = $this->request->data;
    $cnt = $data->Users->find()

这很明显。

我强烈建议您花一些时间学习调试技术,以及如何处理此类问题和错误消息。开发人员应该能够在没有外部帮助的情况下很快解决这类问题。对于开发人员来说,这被认为是正常的工作。

( 1)阅读整个错误消息( 2)在Google和Stackoverflow上搜索它,其他人以前不太可能收到这条消息。( 3)根据错误信息产生的原因采取行动。

在此错误消息的情况下,调试您正在处理的对象类型,并找出为什么它不是您所期望的对象。通过调用堆栈有帮助。为此使用X调试分析器,这是一个很好的工具。

另外,不要使用像$cnt这样的变量名,我假设这意味着“帐户”,它甚至不适合它所使用的上下文。很糟糕的名字。相反,使用可读并适合于上下文的适当变量名称。这是一个完全错误的假设,保持变量名称短是任何一种节省时间-它显然不是。下一个处理这些变量的人需要一本字典,或者对这些变量的含义做很多猜测。

票数 1
EN

Stack Overflow用户

发布于 2016-02-01 09:46:06

而不是$cnt =$data->->count();使用$cnt = $this->{$this->modelClass}->find('count');

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35115914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档