엘로퀀트 질문합니다.

라라벨의 hasone 관계를 이용해서 두개의 테이블 조인을 하고있습니다.
일단 제가 studymemberinfo 테이블과 studylogin 테이블을 조인합니다.
studymemberinfo의 기본키는 join_idx이구요, 이 기본키가 studylogin의 외래키로 들어가게됩니다
다음과 같은 결과가 나옵니다.

select * from studyMemberInfo where studyMemberInfo.join_idx = '14' limit 14.25msstudy
select * from studyLogin where studyLogin.login_idx is null limit 1

studyLogin에서도 joinidx 값으로 비교를 해야하는데 엉뚱하게 기본키인 loginidx 로 is null을 체크합니다. 왜그런건지 모르겠네요.

Column not found: 1054 Unknown column 'studyLogin.studymemberinfo_id' in 'where clause' (SQL: select * from studyLogin where studyLogin.study_member_info_id = 14 and studyLogin.study_member_info_id is not null limit 1)

그래서 처음에는 $this→belongsTo(studyMemberInfo::class, '외래키이름'); 처럼 해봐도 결과가 제대로 나오지를 않습니다. 소스는 다음과 같습니다.

namespace App;
use Illuminate\Database\Eloquent\Model;
class studyMemberInfo extends Model
{
protected $table = "studyMemberInfo"; protected $connection = "mysql"; protected $primaryKey = "join_idx";

 public function login(){
      return $this→belongsTo(studyLogin::class);
}

}

namespace App;
use Illuminate\Database\Eloquent\Model;

class studyLogin extends Model{
protected $table = "studyLogin"; protected $connection = "mysql"; protected $primaryKey = "login_idx"; public function member(){ return $this->hasOne(studyMemberInfo::class); }

}
컨트롤러에서는 아래와 같이 가져옵니다.

public function joinResultPage($id){
$memberInfo = studyMemberInfo::find($id)->login; dump($memberInfo); //$memberInfo->join_idx; }

결과는 계속 null을 출력하고있습니다. 왜 그러는걸까요?

comments powered by Disqus