Docs Menu
Docs Home
/ / /
Laravel MongoDB
/

MongoDB 데이터 보기

1

다음 명령을 실행하여 MongoDB database 및 해당 리소스 컨트롤러에서 샘플 movies collection의 데이터를 나타내는 Movie 모델을 생성합니다.

php artisan make:model Movie -cr

명령이 완료되면 다음 메시지가 출력됩니다.

INFO Model [app/Models/Movie.php] created successfully.
INFO Controller [app/Http/Controllers/MovieController.php] created successfully.
2

app/Models 디렉토리에서 Movie.php 모델을 열고 다음과 같이 편집합니다.

  • Illuminate\Database\Eloquent\Model 가져오기를 MongoDB\Laravel\Eloquent\Model으)로 바꿉니다.

  • $connection 필드에 "mongodb" 를 지정합니다.

편집한 Movie.php 파일에는 다음 코드가 포함되어 있습니다.

<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Movie extends Model
{
protected $connection = 'mongodb';
}
3

app/Http/Controllers 디렉토리에서 MovieController.php 파일을 엽니다. 데이터베이스 쿼리와 일치하는 결과를 검색하고 뷰에 렌더링하려면 show() 함수를 다음 코드로 바꿉니다.

public function show()
{
return view('browse_movies', [
'movies' => Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get()
]);
}
4

routes 디렉토리에서 web.php 파일을 엽니다. 다음 코드에 표시된 대로 MovieController 에 대한 가져오기 및 browse_movies 경로를 추가합니다.

<?php
// ...
use App\Http\Controllers\MovieController;
Route::get('/browse_movies/', [MovieController::class, 'show']);
5

애플리케이션 루트 디렉토리에서 다음 명령을 실행하여 영화 데이터를 표시하는 뷰를 만듭니다.

php artisan make:view browse_movies

명령을 실행하면 다음 메시지가 출력됩니다.

INFO View [resources/views/browse_movie.blade.php] created successfully.

resources/views 디렉토리에서 browse_movie.blade.php 뷰 파일을 엽니다. 내용을 다음 코드로 바꾸고 변경 사항을 저장합니다.

<!DOCTYPE html>
<html>
<head>
<title>Browse Movies</title>
</head>
<body>
<h2>Movies</h2>
@forelse ($movies as $movie)
<p>
Title: {{ $movie->title }}<br>
Year: {{ $movie->year }}<br>
Runtime: {{ $movie->runtime }}<br>
IMDB Rating: {{ $movie->imdb['rating'] }}<br>
IMDB Votes: {{ $movie->imdb['votes'] }}<br>
Plot: {{ $movie->plot }}<br>
</p>
@empty
<p>No results</p>
@endforelse
</body>
</html>
6

뷰를 생성하고 browse_movie.blade.php 파일을 편집하는 대신 toJson() 메서드를 사용하여 결과를 JSON 형식으로 표시할 수 있습니다.

show() 함수를 다음 코드로 대체하여 결과를 조회 하고 JSON 문서로 반환합니다.

public function show()
{
$results = Movie::where('runtime', '<', 60)
->where('imdb.rating', '>', 8.5)
->orderBy('imdb.rating', 'desc')
->take(10)
->get();
return $results->toJson();
}
7

애플리케이션 루트 디렉토리에서 다음 명령을 실행하여 PHP 내장 웹 서버를 시작합니다.

php artisan serve

서버가 시작되면 다음 메시지를 출력합니다.

INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the server
8

웹 브라우저에서 URL http://127.0.0.1:8000/browse_movies 를 엽니다. 이 페이지에는 영화 목록과 각 영화에 대한 세부 정보가 표시됩니다.

애플리케이션 루트 디렉토리에서 php artisan route:list 명령을 실행하여 사용 가능한 경로 목록을 볼 수 있습니다.

참고

문제가 발생하면 MongoDB Community 포럼 에서 도움을 요청하거나 페이지 오른쪽 또는 오른쪽 하단에 있는 Rate this page 탭을 사용하여 피드백을 제출하세요.

돌아가기

MongoDB 연결 구성