【发布时间】:2018-08-07 09:44:10
【问题描述】:
我想知道使用 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。
【问题讨论】:
-
"模型用于连接数据库表" 注意有些模型没有数据库连接/表。
-
关键是它是一个你可以像其他类一样使用的类,但也有数据库行支持。如果您正在使用面向对象编程编写代码,那么拥有一个代表您拥有的实际对象的类比将所有内容转储到数组或标准对象中更有用。
-
所以你会建议每次我尝试对数据库做某事时创建一个新模型?那是很多模型:O
-
不,您为数据库中的每个实体创建模型,而不是为数据库中的所有事物创建模型。例如:
users是实体,roles是实体,但user_roles不是实体而是关系。如果您认为模型太多,那么只需制作对模型有用的事物的模型。 -
那么,简单来说,每个数据库表(实体)一个模型?
标签: php laravel model eloquent