文档菜单
文档首页
/ / /
Laravel MongoDB
/

查看 MongoDB 数据

1

创建一个名为使用以下命令来表示您的MongoDB数据库中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.
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

在路由目录中的 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 内置 web 服务器

php artisan serve

服务器启动后,将输出以下消息

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

打开以下 URLhttp://127.0.0.1:8000/browse_movies 在您的网页浏览器中。页面将显示电影列表及其详细信息。

提示

您可以从应用程序根目录运行 php artisan route:list 命令来查看可用的路由列表。

注意

如果您遇到问题,可以在 MongoDB Community Forums 中寻求帮助或使用页面右上角或右下角的评分此页 标签提交反馈。

返回

配置您的 MongoDB 连接