首页 >数据库 >mysql教程 >Bangla 部分生成模型类中的 Laravel Eloquent ORM)

Bangla 部分生成模型类中的 Laravel Eloquent ORM)

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 17:32:45656浏览

Laravel Eloquent ORM in Bangla Part-enerating Model Classes)

Eloquent:生成模型类 是生成模型类以与 Laravel 中的数据库表交互的过程。使用 Eloquent ORM(对象关系映射器),您可以轻松地从数据库表中读取、创建、更新和删除数据。


如何创建模型类

1.使用 Artisan 命令创建模型

模型类是使用 Laravel 的 artisan CLI 创建的。运行以下命令:

php artisan make:model ModelName

例如,创建名为 Post 的模型:

php artisan make:model Post

这将在 app/Models 目录中创建一个 Post.php 文件。


模型的基本结构

模型通常应如下所示:

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;
}


2.使用迁移文件创建模型

使用以下命令一起创建模型和数据库迁移:

php artisan make:model Post -m

这将创造两件事:

  1. 发布模型。
  2. 名为database/migrations/2025_01_05_000000_create_posts_table.php的迁移文件。

3.使用模型创建工厂和播种机

使用 Factory 和 Seeder 文件构建模型:

php artisan make:model ModelName

  • m:将生成迁移。
  • f:将创建工厂。
  • s:将生成雪松。
  • c:将创建控制器。

与模型中数据库表的关系

1.默认表名

Laravel 根据模型类名称假定数据库表名称。
例如:

  • Post 模型的默认表是 posts。
  • User 模型的默认表是 users。

如果你想使用自定义表格,请在模型上设置 $table 属性:

php artisan make:model Post


模型的重要属性和方法

1. $fillable 和 $guarded

$fillable 或 $guarded 用于确定数据库中哪些字段可以插入数据。

  • $fillable:可以将数据插入到指定字段中。
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;
}

  • $guarded:无法将数据插入指定字段。
php artisan make:model Post -m

2. $primaryKey

如果表的主键不是 id:

php artisan make:model Post -mfsc

3. $时间戳

Laravel 默认使用表created_at 和updated_at 列。如果您不想使用它们:

class Post extends Model
{
    protected $table = 'blog_posts';
}

4.关系(关系)

模型可以使用 Eloquent 关系相互链接。

  • 一对一关系
php artisan make:model ModelName

  • 一对多关系
php artisan make:model Post

  • 多对多关系
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;
}

以上是Bangla 部分生成模型类中的 Laravel Eloquent ORM)的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn