我是 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 驱动程序。当然它也有不利的一面——主要是性能,但你可以根据自己的标准来决定。获取数百万条记录可能会消耗资源,因此在尝试不同的方法时使用一些工具来衡量性能。
可以看看s ource code
源代码并不是那么简单,因为整个 ORM 模式实现是开发 Laravel 时最具挑战性的任务(Taylor Otwell 引述)。
所以,最后 - 对任何类型的重要数据库访问使用模型,它在这里提供帮助。您可以通过创建自己的函数和助手来扩展一切,但首先使用 Laravel 提供的功能。
附言 我通过为您提供一些指南和链接来回答您的问题,您可以按照这些指南和链接了解有关 Laravel 数据库访问的更多信息。
关于php - 何时在 Laravel 4 中使用模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21980705/