📌  相关文章
📜  如何在 laravel 中的多个表中的数据库中显示 html 表中的数据 - Html (1)

📅  最后修改于: 2023-12-03 14:52:23.661000             🧑  作者: Mango

如何在 Laravel 中的多个表中的数据库中显示 HTML 表中的数据

在 Laravel 中,可以轻松地连接多个数据库,并在多个表中获取数据。本文将介绍如何在 Laravel 应用程序中连接多个数据库并从多个表中获取数据,然后将其呈现为 HTML 表格。

连接多个数据库

要在 Laravel 中连接多个数据库,需要在 config/database.php 文件中添加其他数据库配置。这些配置可以包含在以下任何顶级数组中:connectionsredismail。下面是一个示例:

'connections' => [
    'database1' => [
        'driver' => 'mysql',
        'host' => env('DB1_HOST', 'localhost'),
        'database' => env('DB1_DATABASE', 'database1'),
        'username' => env('DB1_USERNAME', 'root'),
        'password' => env('DB1_PASSWORD', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],

    'database2' => [
        'driver' => 'mysql',
        'host' => env('DB2_HOST', 'localhost'),
        'database' => env('DB2_DATABASE', 'database2'),
        'username' => env('DB2_USERNAME', 'root'),
        'password' => env('DB2_PASSWORD', ''),
        'charset' => 'utf8mb4',
        'collation' => 'utf8mb4_unicode_ci',
        'prefix' => '',
        'strict' => false,
        'engine' => null,
    ],
],

在这个例子中,我们定义了两个数据库连接:database1database2

请注意,env() 函数用于获取环境变量,因此您需要在 .env 文件中定义这些变量。

要在应用程序中使用这些数据库连接,只需在模型中指定它们的连接名称即可。

class Model1 extends Model
{
    protected $connection = 'database1';
}

class Model2 extends Model
{
    protected $connection = 'database2';
}

现在我们可以通过这些模型从不同的数据库中获取数据。

获取数据

要从多个表中获取数据,您需要创建一个查询,然后从不同的模型中提取数据。这里是一个例子:

$records = DB::table('table1')
    ->join('database2.table2','table1.id','=','table2.table1_id')
    ->select('table1.*','table2.field1','table2.field2')
    ->get();

在这个例子中,我们使用 DB::table() 方法创建一个查询,然后使用 join() 方法连接 table1database2.table2,使用 select() 方法选择所需的字段,最后使用 get() 方法获取结果。

这样我们就可以从多个表中获取数据。

呈现 HTML 表格

要将数据呈现为 HTML 表格,您可以使用 Laravel 的 Blade 模板引擎。这里是一个例子:

<table>
    <thead>
        <tr>
            <th>Field1</th>
            <th>Field2</th>
            <th>Field3</th>
        </tr>
    </thead>
    <tbody>
        @foreach($records as $record)
        <tr>
            <td>{{ $record->field1 }}</td>
            <td>{{ $record->field2 }}</td>
            <td>{{ $record->field3 }}</td>
        </tr>
        @endforeach
    </tbody>
</table>

在这个例子中,我们使用 @foreach Blade 指令迭代 $records 数组,并使用 {{ }} 语法输出字段的值。

结论

连接 Laravel 多个数据库并从多个表中获取数据,然后将其呈现为 HTML 表格并不难。 通过使用 Laravel 的查询构建器和 Blade 模板引擎,您可以轻松完成这项任务。