Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 02.02.2014 21:49:29

Ошибка при записи в БД.

Здравствуйте.
Везде прописана таблица - user.
В контроллере настроил Validator.
При записи в БД, получаю ошибку, нет таблицы - my_db.users.

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'my_db.users' doesn't exist (SQL: select count(*) as aggregate from `users` where `email` = qqq@qqq.tt)

Если убрать Validator, все - ок.

Что делать?

ЗЫ Все работает под Windows.

Не в сети

#2 03.02.2014 11:04:07

dx

Re: Ошибка при записи в БД.

Какой валидатор в котроллере?
показывайте код

#3 03.02.2014 12:20:43

Re: Ошибка при записи в БД.

Validator в контроллере:

public function createUser(){

		$validator = Validator::make(Input::all(), User::$rules);
 
		
		
		if ($validator->passes()) {
				$user = new User;
				$user->nickname = Input::get('nickname');
				$user->email = Input::get('email');
				$user->password = Hash::make(Input::get('password'));
				$user->save();
				return Redirect::to('user/create')->with('message', 'Thanks for registering!');
		} else {
				return Redirect::to('/')->with('message', 'Error!');
		}
	}

В модели User :

protected $table = 'user';

Если убрать:

$validator = Validator::make(Input::all(), User::$rules);

и

if ($validator->passes()) {
			$user = new User;
				$user->nickname = Input::get('nickname');
				$user->email = Input::get('email');
				$user->password = Hash::make(Input::get('password'));
				$user->save();
				return Redirect::to('user/create')->with('message', 'Thanks for registering!');	
		} else {
				return Redirect::to('/')->with('message', 'Error!');
		}

Все работает нормально, пишеться в таблицу 'user'.

Может в Lavarel где то захардкодили таблицу 'users'?

Изменено Romix (03.02.2014 12:30:39)

Не в сети

#4 03.02.2014 12:37:50

Re: Ошибка при записи в БД.

Забыл, в контроллере оставляю просто:

$user = new User;
				$user->nickname = Input::get('nickname');
				$user->email = Input::get('email');
				$user->password = Hash::make(Input::get('password'));
				$user->save();
				return Redirect::to('user/create')->with('message', 'Thanks for registering!');

Все - ок.

Не в сети

#5 03.02.2014 13:05:44

Re: Ошибка при записи в БД.

Rules в модели User

class User extends Eloquent implements UserInterface, RemindableInterface {

	public static $rules = array(
   'nickname'=>'required|alpha|min:2',
   'email'=>'required|email|unique:users',
   'password'=>'required|alpha_num|between:6,12|confirmed',
   'password_confirmation'=>'required|alpha_num|between:6,12'
   );

	/**
	 * The database table used by the model.
	 *
	 * @var string
	 */
	protected $table = 'user';

и т.д.

Не в сети

#6 03.02.2014 20:45:06

Re: Ошибка при записи в БД.

В валидаторе unique указана таблица users:

'email' => 'required|email|unique:users',

Не в сети

#7 03.02.2014 21:34:27

Re: Ошибка при записи в БД.

grachov пишет:

В валидаторе unique указана таблица users:

'email' => 'required|email|unique:users',

Спасибо, добрый человек.

Не в сети

Подвал раздела