Laravel-Eloquent ORM 模型

Eloquent 表命名约定

1.模型

假设修改了示例模型的路径,需要正确引入命名空间。
例如将默认的App\User路径修改为App\Models对应命名空间也应改为App\Models
因为默认的User模型底层已经关联了各种门脸。涉及改动需要同时修改类名的引用。
由此可见一个基本Eloquent引入了哪些基本facades门脸

示例

2.约定优于配置

laravel中推崇【约定优于配置】的概念。创建模型时,默认以【下划线命名法】+【复数s】方式。这样做的好处便于快速建表。

//例如创建`users`迁移表
php artisan make:migraion create_users_table --create=users

//对应创建模型
php artisan make:model User

如果不按照这种规定。也可在模型中自定义字段(引入模型相关,后续补)

//表名
protected $table='users'  

//表主键字段                
protected $primaryKey='id'   

//允许向表中注入的字段,只有以下字段才能被更新    
protected $fillables=['user','post_id']

//除了以下字段,其他字段都能被更新。可设置为空数组,即任何字段都可注入       
protected $guard=['user']         

//配置隐藏字段,以下数据在查询结果中不会被显示 。           
protected $hidden=['password']

//可以不启用该字段
public $timestamps=false                         

Tinker(REPL)

使用Laravel提供的tinker可轻松与数据库关联

1.快速创建实例化模型
//输入以下命令进入
php artisan tinker

//通过Tinker可快速创建用户模型实例
 App\Models\User::create
 (['name'=> 'Aufree', 'email'=>'[email protected]','password'=>bcrypt('password')])  

 //关于bcrypt,类似mysql中的md5函数,用于密码加密。
 //此处可见该关联,模型->数据表,引入该模型的命名空间并访问封装好的静态方法create再插入(['字段'=>'值'])
2.查找用户对象
2.1检索单个模型/集合

通过findfirst方法检索单挑记录。这些方法不是返回一组模型,而是返回一个模型实例

使用指定的命名空间,直接调用 User而非输出整个完整的类名

use App\Modes\User

上面的use仅对当前会话有效,如果中途退出TINKER需要重新执行,才能使用该User类名。

//查找第一个用户,相当于select * from user where id = 1;
//如果查找不到,tinker会默认返回null
User::find(1)

//如果不想触发报错,可使用findOrFail()
//User::findOrFail(id)

//如果要查询列表中的首个用户,可以使用first()
User::first()

//获取用户的所有数据
User::all();
3.更新用户对象

想要更新模型,必先检索模型。
首先需要从数据库中找到指定的用户并赋值给变量

3.1 save()
//查找对象实例并赋值
$user = User::first()

//修改字段属性
//如果是在控制器接收提交的数据,可使用$user->name=$request->name
$user->name='Xzibit'

//更新字段
$user->save()
3.2 update()
//update方式可批量赋值
$user->update(['name'=>'Xzibit'])
3.3 其他创建方法 (firstOrCreate/firstOrNew/updateOrCreate)

猜你喜欢

转载自blog.csdn.net/zgy0777/article/details/82225311
今日推荐