我想知道使用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。
答案 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之类的关系表。不太确定该如何解释,但我确定您会明白。
还要记住,模型应该只包含数据库逻辑,我已经看到很多次人们使用模型来过滤数组,但这不应该属于模型。