php - 何时在 Laravel 4 中使用模型

标签 php mysql laravel laravel-4 eloquent

我是 Laravel 和 MVC 的新手,我正在为应该在何时何地做事而苦苦挣扎......

我有一个州选择、下拉列表、字段(CA、NY、TX 等),我想从数据库表中填充这些字段。这个数据库表很大(300 万行),因为它包含美国每个位置的信息。所以我的原始 SQL 看起来像:

select distinct state_alpha,state_numeric
from location_code
order by state_alpha;

我将不得不在我的所有申请中多次执行此操作。该表也是只读的——用户永远不会插入或更新它。我最终会有类似的查询 - 从同一张表中提取 - 将返回一个州的县、一个县的城市等。

所以我的第一个问题是:我应该为这样的东西创建一个模型吗?我很担心,因为我不知道模型在幕后是如何工作的,我不希望它不必要地从表中读取或准备要写入的内容或其他内容。

我的下一个问题:除非您回答我的第一个问题,否则您能否提供一个基本示例来说明我将如何完成此任务。

对不起,如果我听起来真的很愚蠢,但 Laravel 的文档并不是真的那么包容 - 它说明了允许你使用它需要什么,但它没有涵盖它如何很好地工作 - 这么多这对我来说很神奇。

最佳答案

Laravel Eloquent 类代表了 Object Relational Mapping 的实现pattern.It 是一个类,简而言之,将您的数据库声明逻辑转换为面向对象的代码。通过使用您自己的模型扩展 Eloquent,例如

class MyModel extends Eloquent{};

您正在弥合两种范式之间的差距。你可以使用 Laravel Fluent 例如:

$product = DB:table("product")->get();

比 Eloquent 低了一步。

想想使用像这样的行查询是不是更好:

SELECT * from Product:

$product = Product::all();

最后一个例子对于 Laravel 和 PHP OO 方法来说更自然。

这些都是抽象概念,使您的数据库访问更易于使用。它们基于内置的 PHP mysql 驱动程序。当然它也有不利的一面——主要是性能,但你可以根据自己的标准来决定。获取数百万条记录可能会消耗资源,因此在尝试不同的方法时使用一些工具来衡量性能。

此外Eloquent documentation

可以看看s ource code

源代码并不是那么简单,因为整个 ORM 模式实现是开发 Laravel 时最具挑战性的任务(Taylor Otwell 引述)。

所以,最后 - 对任何类型的重要数据库访问使用模型,它在这里提供帮助。您可以通过创建自己的函数和助手来扩展一切,但首先使用 Laravel 提供的功能。

附言 我通过为您提供一些指南和链接来回答您的问题,您可以按照这些指南和链接了解有关 Laravel 数据库访问的更多信息。

关于php - 何时在 Laravel 4 中使用模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21980705/

相关文章:

php - 在 Codeception 测试中找不到 Yii2 类

php - 我无法将数据插入 Laravel 5.2 中的表中

php - 将事件页面与谷歌日历同步

php - 如何在 Phalcon 中将每个表格转换为伏特?

MySQL 插入(枚举?)

php - 在同一个表mysql中插入多个重复行

php - 考虑到时区差异,如何计算一天中的平均时间?

mysql - 多个位置

php - MySQL 默认 date() + 14 天,对于一个列?

php - 从mysql数据库到php的唯一字段