[SQL] SQLSTATE는 [42S22] : 열을 찾을 수 없습니다 : 1054 알 수없는 열 - Laravel
SQLSQLSTATE는 [42S22] : 열을 찾을 수 없습니다 : 1054 알 수없는 열 - Laravel
나는 프레임 워크 Laravel을 사용하고 있습니다.
나는 2 개 테이블 (사용자 및 회원)이있다. 내가 로그인 할 때, 나는 오류 메시지가 :
표 사용자
CREATE TABLE IF NOT EXISTS `festival_aid`.`users` (
`user_id` BIGINT NOT NULL AUTO_INCREMENT,
`user_email` VARCHAR(45) NOT NULL,
`user_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`user_modified` TIMESTAMP NULL,
`user_deleted` TIMESTAMP NULL,
`user_lastlogin` TIMESTAMP NULL,
`user_locked` TIMESTAMP NULL,
PRIMARY KEY (`user_id`),
UNIQUE INDEX `user_email_UNIQUE` (`user_email` ASC),
ENGINE = InnoDB;
표 회원
CREATE TABLE IF NOT EXISTS `festival_aid`.`members` (
`member_id` BIGINT NOT NULL AUTO_INCREMENT,
`member_password` CHAR(32) NOT NULL,
`member_salt` CHAR(22) NOT NULL,
`member_token` VARCHAR(128) NULL,
`member_confirmed` TIMESTAMP NULL,
`user_id` BIGINT NOT NULL,
PRIMARY KEY (`member_id`, `user_id`),
INDEX `fk_members_users1_idx` (`user_id` ASC),
CONSTRAINT `fk_members_users1`
FOREIGN KEY (`user_id`)
REFERENCES `festival_aid`.`users` (`user_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
마이그레이션 사용자
public function up()
{
Schema::table('users', function(Blueprint $table)
{
$table->increments('user_id');
$table->string('user_email');
$table->timestamp('user_created');
$table->timestamp('user_modified');
$table->timestamp('user_deleted');
$table->timestamp('user_lastlogin');
$table->timestamp('user_locked');
});
}
마이그레이션 회원
public function up()
{
Schema::table('members', function(Blueprint $table)
{
$table->increments('member_id');
$table->string('member_password');
$table->string('member_salt');
$table->string('member_token');
$table->foreign('user_id')
->references('id')->on('users');
//->onDelete('cascade');
$table->timestamp('member_confirmed');
});
}
모델 사용자
class User extends Eloquent {
protected $table = 'users';
/**
* The primary key for the model.
*
* @var string
*/
protected $primaryKey = 'user_id';
public $timestamps = false;
}
모델 회원
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableInterface;
class Member extends Eloquent implements UserInterface, RemindableInterface {
protected $table = 'members';
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = array('member_password');
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier()
{
return $this->getKey();
}
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword()
{
return $this->member_password;
}
/**
* Get the e-mail address where password reminders are sent.
*
* @return string
*/
public function getReminderEmail()
{
return $this->email;
}
/**
* The primary key for the model.
*
* @var string
*/
protected $primaryKey = 'member_id';
public $timestamps = false;
public function users()
{
return $this->hasOne('User');
}
}
회원 모델 사용 : 를 분명히 \ 인증 \ 후 UserInterface를 사용;
<?php namespace Illuminate\Auth;
interface UserInterface {
/**
* Get the unique identifier for the user.
*
* @return mixed
*/
public function getAuthIdentifier();
/**
* Get the password for the user.
*
* @return string
*/
public function getAuthPassword();
}
제어 장치
public function store()
{
$input = Input::all();
$rules = array('user_email' => 'required', 'member_password' => 'required');
$v = Validator::make($input, $rules);
if($v->passes())
{
$credentials = array('user_email' => $input['user_email'], 'member_password' => $input['member_password']);
if(Auth::attempt($credentials))
{
return Redirect::to('/home');
} else {
return Redirect::to('login');
}
} else {
return Redirect::to('login')->withErrors($v);
}
}
auth.php
창 어레이 ( / * | ------------------------------------------------- ------------------------- | 인증 드라이버를 기본 | ------------------------------------------------- ------------------------- | | 이 옵션을 사용합니다 인증 드라이버를 제어합니다. | 이 드라이버는 사용자의 검색 및 인증을 관리 | 응용 프로그램의 보호 지역에 접근을 시도. | | 지원 : "데이터베이스", "설득력" | * / '드라이버'=> '웅변' / * | ------------------------------------------------- ------------------------- | 인증 모델 | ------------------------------------------------- ------------------------- | | 은 "설득력"인증 드라이버를 사용하는 경우, 우리는 알 필요가있는 | 웅변 모델은 사용자를 검색하는 데 사용되어야한다. 물론, 그것을 | 종종 그냥 "사용자"모델입니다하지만 당신은 당신이 원하는대로 사용할 수 있습니다. | * / '모델'=> '회원' / * | ------------------------------------------------- ------------------------- | 인증 표 | ------------------------------------------------- ------------------------- | | "데이터베이스"인증 드라이버를 사용하는 경우, 우리는 알 필요가있는 | 테이블은 사용자를 검색하는 데 사용되어야한다. 우리는 기본을 선택한 | 값을 기본하지만 당신은 쉽게 같은 모든 테이블 당신에게 그것을 변경 될 수 있습니다. | * / '테이블'=> '회원' / * | ------------------------------------------------- ------------------------- | 암호 알림 설정 | ------------------------------------------------- ------------------------- | | 여기에 당신은보기를 포함하여, 암호 알림에 대한 설정을 설정할 수 있습니다 | 그 비밀번호 알림 메일로 사용되어야한다. 또한 것이다 | 리셋 토큰을 보유하고있는 테이블의 이름을 설정할 수 있습니다. | | 은 "만료"시간은 알림이해야하는 시간 (분)입니다 | 유효한 것으로 간주. 이 보안 기능은 토큰이 너무 단명 유지 | 그들은 더 적은 시간을 추측해야합니다. 필요에 따라 변경할 수 있습니다. | * / '주지 사항'=> 어레이 ( '이메일'=> 'emails.auth.reminder' "테이블"=> 'password_reminders' '만료'=> 60 ), ); 어떻게 내가 여기 잘못 한거야?
해결법
-
==============================
1.당신은 인증을 위해 auth.php 및 사용 회원 테이블을 구성했지만 그래서 회원 테이블에 USER_EMAIL 필드가없는, Laravel 말한다
당신은 인증을 위해 auth.php 및 사용 회원 테이블을 구성했지만 그래서 회원 테이블에 USER_EMAIL 필드가없는, Laravel 말한다
때문에 회원 테이블의 USER_EMAIL 일치하도록 시도하고 거기 아니에요. 사용자 인증 구성에 따르면, laravel 인증되지 사용자 테이블에 대한 회원 테이블을 사용하고 있습니다.
-
==============================
2.당신은 회원 테이블의 필드 이름 USER_EMAIL이없는 ... 난 이유에 관해서는 확실하지 그것과 같은 코드 "외모는"다른 분야에 참여하도록해야으로
당신은 회원 테이블의 필드 이름 USER_EMAIL이없는 ... 난 이유에 관해서는 확실하지 그것과 같은 코드 "외모는"다른 분야에 참여하도록해야으로
[인증 :: 시도 방법은 스키마의 조인을 수행합니까? 실행 그렙 -rl '클래스 인증'/ 경로 / 프레임 워크 /와 시도 방법이고 그것이 무엇을 어디에서 찾을 수 있습니다.
-
==============================
3.변경하려고 할 경우 회원 등급
변경하려고 할 경우 회원 등급
public function users() { return $this->hasOne('User'); } return $this->belongsTo('User');
from https://stackoverflow.com/questions/20711253/sqlstate42s22-column-not-found-1054-unknown-column-laravel by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 동적 파일 이름으로 복사 (0) | 2020.05.16 |
---|---|
[SQL] SQL 함수 - 계승 (0) | 2020.05.16 |
[SQL] 빈 SQL 테이블 퍼키이 있습니까? 모든 SQL 테이블합니까? (0) | 2020.05.16 |
[SQL] SELECT 목록에서 별칭 다른 곳에서 참조 (0) | 2020.05.16 |
[SQL] 동적 열 플러스 컬럼 이름 UNPIVOT (0) | 2020.05.16 |