laravel实践6.laravel模型文件
1.示例:
app/User.php
<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; }
Notifiable:
消息通知相关功能引用
Authenticatable:
授权相关功能的引用
绑定数据库中对应的数据表:
protected $table = 'users';
fillable:
在过滤用户提交的字段,只有包含在该属性中的字段才能够被正常更新:
protected $fillable = [ 'name', 'email', 'password', ];
对用户密码或其它敏感信息在用户实例通过数组或 JSON 显示时进行隐藏,则可使用 hidden
属性:
protected $hidden = [ 'password', 'remember_token', ];
2.创建模型
php artisan make:model Models/Article //指定Models为其命名空间
注意:模型类名称使用 单数 形式来命名
创建模型同时创建迁移文件
php artisan make:model Models/Article -m
将生成current_time_create_articles_table的migration 文件(复数形式)
3.Eloquent 表命名约定
在该文件中,Eloquent Article 模型默认情况下会使用类的「下划线命名法」与「复数形式名称」来作为数据表的名称生成规则。如:
- Article 数据模型类对应
articles
表; - User 数据模型类对应
users
表; - BlogPost 数据模型类对应
blog_posts
表;
因此 Eloquent 将会假设 Article 模型被存储记录在 articles 数据表中。如果你需要指定自己的数据表,则可以通过 table
属性来定义