아주 간단하지만 어떤 예제도 찾을 수 없습니다.Laravel의 유창한 쿼리 빌더와 원시 SQL과 non-raw를 섞는 방법
내 Laravel 응용 프로그램을 유창하게 사용하여 사용자의 로그인을 기록하고 자체 인증 드라이버를 만들었지 만 원시 데이터와 원시를 혼합 한 유창한 쿼리에 문제가 있습니다. 다음을 살펴보십시오. :
DB::table('logins')->insert(array(
'login_email' => $arguments['email'],
'login_date' => DB::raw('UNIX_TIMESTAMP(NOW())'),
'login_ip'=> DB::raw('INET_ATON('.$_SERVER['REMOTE_ADDR'].')'),
'login_result' => (bool)$success
));
가 일으키는 :
DB::table('logins')->insert(array(
'login_email' => DB::raw("'".$arguments['email']."'"),
'login_date' => DB::raw('UNIX_TIMESTAMP(NOW())'),
'login_ip'=> DB::raw('INET_ATON('.$_SERVER['REMOTE_ADDR'].')'),
'login_result' => DB::raw((bool)$success)
));
:
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@gmail.com, UNIX_TIMESTAMP(NOW()), INET_ATON(127.0.0.1), ?)' at line 1
SQL: INSERT INTO `cs_logins` (`login_email`, `login_date`, `login_ip`, `login_result`) VALUES (?, UNIX_TIMESTAMP(NOW()), INET_ATON(127.0.0.1), ?)
Bindings: array (
0 => false,
)
그래서 나는 다음과 같은 한
그러나 Dayle Rees가 말했듯이, 추한 것처럼 보이면 프레임 워크에 없기 때문에 여기에서 누락 된 부분을 알고 싶습니다.
정보가 +1 tnx 인 경우 Dayle Rees의 튜토리얼을 구입하여 읽었으며 Fluent가 더 쉽게 시작했다고 판단했기 때문에 주로 Fluent 예제를 사용하고 피벗 테이블을 사용하는 방법을 쉽게 보여 주었기 때문에 생각했습니다. 당신은 웅변이가는 길이라고 생각합니까? 많은 사람들이 여러 조인을 사용하여 여러 테이블을 쉽게 검색, 업데이트, 삭제할 수있는 쉬운 구문을 사용하고 있습니까? – Neo
btw 내 라이브러리 폴더에 인증 드라이버를 만들었습니다. 라이브러리에서 로그인 모델에 액세스하려면 어떻게해야합니까? 로그인 모델은 로그인이고 Eloquent를 확장합니다. – Neo
Eloquent는 확실히가는 길입니다. 그것은 모든 작업을위한 동일하고 쉬운 synthax 있습니다. 대부분의 운영은 유창합니다. 'User :: where_name ('simon') -> order_by ('last_name') -> get()'은 웅변을 사용하여 데이터를 검색하는 방법입니다. 유일한 차이점은'User ::'입니다. 그렇지 않으면 꽤 유사 해 보입니다. 맞습니까? :) 자세한 정보는 문서를 확인하십시오. 배우기는 쉽습니다. – aebersold