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检索单个模型/集合
通过find
或first
方法检索单挑记录。这些方法不是返回一组模型,而是返回一个模型实例
使用指定的命名空间,直接调用 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'])