在 laravel PHP 中生成模态类


Generating modal classes in laravel PHP

看起来Laravel是市场上新的热门框架,所以我决定在其上构建我的下一个项目,我的数据库中有8个表(关系数据库)。因此,我尝试使用laravel的原因之一是它通过CRUD操作在模态文件夹中自动生成模态类。

所以我已经准备好了我的数据库架构,我正在读这两本书

 - Getting started with laravel 4 by Raphael Saunier
 - Laravel 4 CookBook by Christopher PITT

使用 mysqlite 作为数据源和使用 artisan 创建数据库模式并创建没有意义的模态 classes.so,当我准备好数据库 mysql 时,为什么要在数据库中再次创建它?

我已经看到许多用于创建模态类的链接,但大多数都来自2013所以可能没有完全更新。

我的问题是

  • 如果数据源是带有 CRUD 操作的 mysql,Laravel真的会为您生成模态类吗?- 任何教程都会有所帮助

我希望我答对了你的问题。

Laravel并不真正关心您使用哪种数据库类型,只要您在app/config/database.php文件中正确指定它即可。

该方案通常是使用迁移创建的。当涉及到底层数据库类型时,这些迁移也是独立的。但是,您也可以按照常规方式创建方案或使用现有的数据库(如果适合),这可能需要您在某些情况下覆盖[model][3]类的表名以及其他自定义项。

我不知道你正在读什么书,但我可以推荐 laracasts 免费截屏系列在 laravel 4 上(如果你想使用它,也有关于 laravel 5 的免费系列)。它应该让你启动并运行。

更新

我想创建模型的最快方法是使用Jeffrey Ways Generators。看看链接。使用它需要您执行 8 个命令,例如

php artisan generate:model YourModel

我强烈建议查看它提供的所有其他命令。我个人经常使用 generate:resource 命令。Jeffrey 还提供了关于他在 Laracasts 上的生成器的教程,这绝对值得一看。但我不知道这些发电机是否已经与 Laravel 5 一起工作。

更新 2

该命令在您的 models-文件夹中创建一个没有正文的类,这很好,因为它扩展了 Eloquent, Laravels ORM(活动记录)。如果模型的名称与 Model 类的名称相对应,则此模型应开箱即用。

一个例子

给定下表

CREATE TABLE products(
    id INT PRIMARY KEY,
    name VARCHAR(100),
    created_at TIMESTAMP,
    updated_at TIMESTAMP
)

模型

public class Product extends Eloquent {
}

会起作用,因为 Elouent 会自动映射表属性。

做类似的事情

$products = Product::all();
$productOne = Product::find(1);
$newProduct = new Product;
$newProduct->name = "my new product";
$newProduct->save();
// and so on

正在立即工作(请注意,laravel希望您在模型表中定义两个时间戳列。如果要禁用此功能,请通过添加 public $timestamps = false; 来编辑模型。