MongoDB データを表示
モデルとコントローラーを作成する
MongoDB database 内のサンプルmovies
コレクションのデータを表すために、 Movie
というモデルを作成し、対応するリソース コントローラーを実行するには、次のコマンドを実行します。
php artisan make:model Movie -cr
コマンドが完了すると、次のメッセージが出力されます。
INFO Model [app/Models/Movie.php] created successfully. INFO Controller [app/Http/Controllers/MovieController.php] created successfully.
Lambda 統合を使用するようにモデルを編集する
app/Models
ディレクトリでMovie.php
モデルを開き、次の編集を行います。
Illuminate\Database\Eloquent\Model
インポートをMongoDB\Laravel\Eloquent\Model
に置き換え$connection
フィールドに"mongodb"
を指定する
編集されたMovie.php
ファイルには、次のコードが含まれています。
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Movie extends Model { protected $connection = 'mongodb'; }
コントローラー関数を追加する
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() ]); }
ビューの生成
アプリケーション ルート ディレクトリから次のコマンドを実行して、映画データを表示するビューを作成します。
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>
オプションで、結果を JSON ドキュメントとして表示します
ビューを生成してbrowse_movie.blade.php
ファイルを編集する代わりに、 toJson()
メソッドを使用して結果を JSON 形式で表示できます。
結果を検索し、JSON ドキュメントとして返すには、 show()
関数を次のコードで置き換えます。
public function show() { $results = Movie::where('runtime', '<', 60) ->where('imdb.rating', '>', 8.5) ->orderBy('imdb.rating', 'desc') ->take(10) ->get(); return $results->toJson(); }
映画データを表示する
ウェブ ブラウザでURL http://127.0.0.1 :8000 /browse_movies を開きます。ページには、映画のリストとそれぞれの詳細が表示されます。
Tip
アプリケーションのルート ディレクトリからphp artisan route:list
コマンドを実行すると、利用可能なルートのリストが表示されます。
注意
問題が発生した場合は、 MongoDB Community フォーラムでサポートを依頼するか、ページの右側または右下にある Rate this pageタブを使用してフィードバックを送信してください。