1

laravelで登録システムを作っています。ユーザーがデータを入力すると、それをデータベースに保存します。しかし、ユーザーが登録ボタンをクリックすると、次のエラー Unhandled Exception が表示されます

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();
        }
    }
}
4

2 に答える 2

2

この問題に苦しんだばかりなので、それが何であるかを正確に伝えることができます。「unique:」検証制約を再確認してください。

上記の一意の制約には「ユーザー」と表示されているため、laravel の Validator は検証を行うためにそのテーブルを探しています。

それを「users」に変更してください。問題が解決しました。

于 2013-11-12T01:45:52.130 に答える
0

エラーメッセージには、テーブル「makeitsnappy」がないことが示されているため、これは、IMO に投稿したコードの外部からのもののようです。

于 2013-04-05T12:44:26.303 に答える