阅读(64) (6)

Laravel 8 创建模型

2021-07-08 16:55:42 更新

模型工厂定义后,就可以在 Eloquent 模型上使用 Illuminate Database Eloquent Factories HasFactory 特性提供的静态 factory 方法来实例化该模型的工厂实例:

namespace AppModels;

use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;

class User extends Model
{
    use HasFactory;
} 

让我们看一些创建模型的例子。首先,我们将使用 make 方法创建模型但不将他们保存至数据库中:

use AppModelsUser;

public function testDatabase()
{
    $user = User::factory()->make();

    // Use model in tests...
} 

你也可以使用 count 方法创建一个含有多个模型的集合:

// Create three AppModelsUser instances...
$users = User::factory()->count(3)->make(); 

HasFactory 特征的 factory 方法将使用默认的约定来确定模型的正确工厂。 具体来说,该方法将在 Database Factories 命名空间中寻找一个工厂,该工厂的类名与模型名称匹配,并且后缀为 Factory 。 如果这些约定不适用于您的特定应用程序或工厂,则可以直接使用工厂来创建模型实例。 要使用 factory 类创建一个新的工厂实例,应在工厂上调用静态的 new 方法:

use DatabaseFactoriesUserFactory;

$users = UserFactory::new()->count(3)->make();