首页 > 解决方案 > 使用 Laravel Eloquent 创建模型和获取信息的最佳实践是什么?

问题描述

我想知道使用 Laravel 框架创建模型的最佳方法是什么?据我所知,该模型用于连接到数据库表,然后,您可以对其数据做任何您想做的事情。

为每个 DB 表创建一个新模型(如此所述)并不好,应该为每个业务对象创建模型。不知道这意味着什么。我想使用 Eloquent 访问同一张表并从中获取一些信息,类似于:

<?php

// Get the model class
use App\Post;

// Grab some data from the posts table
$posts = Post::all();

但它需要有一个模型。使用select方法,例如:

$posts = DB::table('posts')->select('title, body')->get();

不需要模型所以我不太明白模型的意义何在?我在 Laravel 文档中找不到足够的信息:https ://laravel.com/docs/5.6/eloquent 。

标签: phplaravelmodeleloquent

解决方案


作为对您问题的完整解释:

使用方法:

<?php

// Get the model class
use App\Post;

// Grab some data from the posts table
$posts = Post::all();

将与运行如下查询相同:

<?php 
$posts = DB::table('posts')->select('*')->get();

但最大的不同是前者返回的是 Eloquent 对象,后者返回的是普通对象。第一个模型需要一个模型,它扩展了 eloquent,后面的方法是使用 DB 类,它没有扩展 eloquent。所以当你想使用 Eloquent 时,你必须使用模型。

为每个数据库表创建一个新模型(如此处所述)并不好,应该为每个业务对象创建模型。不知道这意味着什么。

实体是诸如用户、帖子、评论、消息之类的东西,但不是诸如 user_has_posts 或 user_has_messages 之类的关系表。不完全确定如何解释它,但我相信你会明白的。

还要记住,模型应该只包含数据库逻辑,我已经看到很多次人们使用模型来过滤数组,但这不应该属于模型。


推荐阅读