使用Laravel Eloquent创建模型并获取信息的最佳实践是什么?

时间:2018-08-07 09:44:10

标签: php laravel model eloquent

我想知道使用Laravel框架创建模型的最佳方法是什么?据我所知,该模型用于与数据库表的连接,然后,您可以对它的数据进行任何操作。

为每个数据库表创建新模型(如here所述)是不好的,应该为每个业务对象创建模型。不知道这意味着什么。我想使用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

1 个答案:

答案 0 :(得分:0)

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

使用方法:

<?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对象,而第二个返回一个普通对象。第一个模型需要一个能够雄辩地进行扩展的模型,第二种方法是使用不会雄辩地进行扩展的DB类。因此,当您想使用Eloquent时,就必须使用模型。

  

在每个数据库表中创建一个新模型(如此处所述)是不好的,应该为每个业务对象创建模型。不确定是什么意思。

实体是诸如用户,帖子,评论,消息之类的东西,但不是诸如user_has_posts或user_has_messages之类的关系表。不太确定该如何解释,但我确定您会明白。

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