유창한 쿼리 작성기로 join + insert 문을 실행하려고합니다 (성공하지 못했습니다). 여기에 잘못된 코드 :Laravel 4 Fluent Query Builder Join + Insert
DB::table('lnk_users_languages')
->join('lut_languages', 'lnk_users_languages.lang_id', '=', 'lut_languages.id')
->where('lut_languages', 'lut_languages.lang_code', '=', 'en')
->insert(array(
'user_id' => Auth::user()->id,
'lang_id' => DB::raw('lut_languages.id')
));
그리고 여기 내 데이터베이스 구조 :
mysql> DESCRIBE lut_languages;
+-----------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| lang_code | varchar(2) | NO | UNI | NULL | |
| lang_name | varchar(30) | NO | | NULL | |
| dominant | tinyint(1) | NO | | NULL | |
+-----------+------------------+------+-----+---------+----------------+
mysql> DESCRIBE lnk_users_languages;
+---------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| user_id | int(10) unsigned | NO | MUL | NULL | |
| lang_id | int(10) unsigned | NO | MUL | NULL | |
+---------+------------------+------+-----+---------+----------------+
그리고 마지막으로 여기에 오류가 나는 나타날 수
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'lut_languages.id' in 'field list' (SQL: insert into `lnk_users_languages` (`user_id`, `lang_id`) values (?, lut_languages.id))
나는 유창 빌더하지 않는 가정 거기에 어떤 문서도 찾을 수 없으므로 조인과 삽입 문을 함께 사용하기를 기대하십시오. 찾을 수있는 모든 예제는 선택 항목과 조인을 사용합니다. 생각?
편집 그냥 내 유창 문에서 오류를 발견했습니다.
->where('lut_languages', 'lut_languages.lang_code', '=', 'en')
은 다음과 같아야합니다 ->where('lut_languages.lang_code', '=', 'en')
그러나, 오류가 계속 발생 ..
오, 그건 수치스러운 일입니다. 당신이 말했듯이, 그것은 그다지 성능에 영향을주지 않을 것입니다. 나는 순수하게 호기심을 만족 시키려고했다. 감사합니다 –
는 (는) 고정 된 것처럼 보입니다. https://github.com/laravel/framework/commit/57e11e392447206f60d77b33c0646229842315a3 –