Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php laravel中的数据库表有问题_Php_Database_Laravel - Fatal编程技术网

Php laravel中的数据库表有问题

Php laravel中的数据库表有问题,php,database,laravel,Php,Database,Laravel,我正在拉维尔建立注册系统。当用户输入数据时,我将其存储在数据库中。但当用户点击注册按钮时,它给了我 跟随误差 未处理的异常 Message: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'makeitsnappy.user' doesn't exist SQL: SELECT COUNT(*) AS `aggregate` FROM `user` WHERE `username` = ? Bindings: array

我正在拉维尔建立注册系统。当用户输入数据时,我将其存储在数据库中。但当用户点击注册按钮时,它给了我 跟随误差 未处理的异常

Message:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'makeitsnappy.user' doesn't exist

SQL: SELECT COUNT(*) AS `aggregate` FROM `user` WHERE `username` = ?

Bindings: array (
  0 => 'asdasd',
)
Location:

/Applications/MAMP/htdocs/laravel-test/laravel/database/connection.php on line 264
Message:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'makeitsnappy.users' doesn't exist

SQL: INSERT INTO `users` (`username`, `password`, `updated_at`, `created_at`) VALUES (?, ?, ?, ?)

Bindings: array (
  0 => 'zafar',
  1 => '$2a$08$Xg47q9n65GZSS/l3xgYTyeTC7eICqMimf6KkvdFwSfiOgpFrI0tKe',
  2 => '2013-03-31 09:22:48',
  3 => '2013-03-31 09:22:48',
)
Location:

/Applications/MAMP/htdocs/laravel-test/laravel/database/connection.php on line 264
当我将表的名称更改为“user”时 未处理的异常

Message:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'makeitsnappy.user' doesn't exist

SQL: SELECT COUNT(*) AS `aggregate` FROM `user` WHERE `username` = ?

Bindings: array (
  0 => 'asdasd',
)
Location:

/Applications/MAMP/htdocs/laravel-test/laravel/database/connection.php on line 264
Message:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'makeitsnappy.users' doesn't exist

SQL: INSERT INTO `users` (`username`, `password`, `updated_at`, `created_at`) VALUES (?, ?, ?, ?)

Bindings: array (
  0 => 'zafar',
  1 => '$2a$08$Xg47q9n65GZSS/l3xgYTyeTC7eICqMimf6KkvdFwSfiOgpFrI0tKe',
  2 => '2013-03-31 09:22:48',
  3 => '2013-03-31 09:22:48',
)
Location:

/Applications/MAMP/htdocs/laravel-test/laravel/database/connection.php on line 264
我怎样才能解决这个问题

更新代码

这是我的模型

user.php

class User extends Basemodel {
    public static $table = 'users';

    public static $rules = array(
        'username'=>'required|unique:user|alpha_dash|min:4',
        'password'=>'required|alpha_num|between:4,8|confirmed',
        'password_confirmation'=>'required|alpha_num|between:4,8'
    );
}
Basemodel.php

class Basemodel extends Eloquent {
    public static function validate($data) {
        return Validator::make($data, static::$rules);
    }
}
这是我的users.php控制器

class Users_Controller extends Base_Controller {
    public $restful = true;

    public function get_new() {
        return View::make('users.new')->with('title', 'Make it Snappy - Register');
    }

    public function post_create() {
        $validation = User::validate(Input::all());

        if($validation->passes()) {
            User::create(array(
                    'username' => Input::get('username'),
                    'password' => Hash::make(Input::get('password'))
                ));

            return Redirect::to_route('home')->with('message', 'Thanks for registring');
        } else {
            return Redirect::to_route('register')->with_errors($validation)->with_input();
        }
    }
}

错误消息说没有表“makeitsnappy”,因此这似乎来自您在IMO发布的代码之外。

刚刚经历了这个问题,我可以告诉您它到底是什么。再次检查“唯一:”验证约束

上面的唯一约束是“用户”,所以laravel的验证器正在寻找该表来进行验证


把它改成“用户”,瞧!问题已解决。

db模式是什么样子的?如果您使用的是Eloquent&一个非标准名称(或者至少是Laravel无法处理的名称),请设置
public static$table='tablename'。@Wrikken我在哪里设置$tablename?您可能有一个
用户
类。。。在添加
publicstatic$table='tablename'之后仍然存在相同的问题。