【Laravel 쿼리 빌더】join으로 내부 결합해, 결합처의 데이터를 취득하는 방법
버전은 6계입니다.
목표
posts 테이블의 user_id와 users 테이블의 id를 내부적으로 결합한다.
posts 테이블
users 테이블
↓
내부 조인을 통해 posts 테이블의 user_id와 users 테이블의 id가 일치하도록 데이터를 검색할 수 있습니다.
SQL로 작성하면 다음과 같습니다.
SELECT *
FROM posts
INNER JOIN users
ON posts.user_id = users.id
샘플 코드
모델 (Post.php)
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Post extends Model
{
public function getUserNameById()
{
return DB::table('posts')
->join('users', 'posts.user_id', '=', 'users.id')
->get();
}
}
join ( '테이블 이름', '조인 할 테이블 이름. 열', '=', '조인 대상 테이블 이름. 열')
이제 내부 조인이 가능합니다.
덧붙여서 다음과 같이 다시 쓸 수 있습니다.
return DB::table('posts')
->join('users', function($join) {
$join->on('posts.user_id', 'users.id');
})
->get();
자세한 내용은 laravel 공식을 참조하십시오.
htps : // 세아 rch. 레아도 bぇ. 이 m/? 쿠에 ry = 6. x+% 에 3% 82% 에 F% 에 3% 82% 에 8% 에 3% 83% 아 % 에 3% 83% 93% 에 3% 83%
컨트롤러 (PostController.php)
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Post;
class PostController extends Controller
{
public function index()
{
$this->posts = new Post();
$results = $this->posts->getUserNameById();
return view('posts.index', compact(
'results',
));
}
}
뷰(index.blade.php)
<table>
<thead>
<tr>
<th>ユーザーID</th>
<th>ユーザー名</th>
<th>投稿名</th>
</tr>
</thead>
<tbody>
@foreach ($results as $result)
<tr>
<td>{{ $result->id }}</td>
<td>{{ $result->name }}</td>
<td>{{ $result->post_name }}</td>
</tr>
@endforeach
</tbody>
</table>
이런 식으로 데이터를 얻을 수있었습니다.
그 밖에도 쿼리 빌더에 대해 해설한 기사가 있으므로 맞추어 체크 부탁합니다.
참고가되면 LGTM 스톡도!
Reference
이 문제에 관하여(【Laravel 쿼리 빌더】join으로 내부 결합해, 결합처의 데이터를 취득하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamome_susume/items/b37709e1ba29abacdbd9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)