用户模型

本文介绍 Laravel 中的数据迁移及模型操作技巧,包括如何利用迁移文件管理数据库表结构、模型文件的创建与使用,以及如何创建、查找和更新用户对象。

1. 数据迁移

在Laravel中,我们使用数据库迁移来管理数据库表结构,迁移就像是数据库中的版本控制,它让团队成员之间能够轻松地修改跟共享应用程序的数据库结构,而不用担心并行更新数据结构而造成冲突问题。
总结下迁移的好处:

  • 多人并行开发
  • 代码版本管理
  • 数据库版本控制:回滚/重置/更新等;
  • 兼容多种数据库系统
  • 部署方便
    所有创建的迁移文件都被同意放在database/migrations文件夹里。打开该文件夹我们可以看到,Laravel已默认为我们创建好了两个迁移文件:
database/migrations/2014_10_12_000000_create_users_table.php
database/migrations/2014_10_12_100000_create_password_resets_table.php

Laravel会在生成的文件名前面加上一个当前时间戳,用于知名该文件的创建时间。避免出现相同名字的迁移文件。


<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password', 60);
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}

以上为create_users_table的代码:
在文件里面定义了一个CreateUsersTable类,并继承自Migration基类。CreatUsersTable有两个方法updown:
* 当我们运行迁移时,
up方法会被调用。会通过调用Schema类的create方法来创建users`表:

Schema::create('users',function(Blueprint $table){
    ...
});
**CreateUsersTable**类中通过**Blueprint**的实例`$table`为`users`表创建所需的数据字段。
```php
$table->increments('id');
···
由`increments`方法创建了一个`integer`类型的自增长id。




<div class="se-preview-section-delimiter"></div>

```php
$table->string('name');
  • 当我们回滚迁移时,down方法会被调用
$table->string('name');

string方法创建了一个name字段

$table->string('email')->unique();

创建了一个email字段,且在最后指定该字段的值为唯一值

$table->string('password',60);

指定password字段定义最大长度为60

$table->rememberToken();

rememberToken方法为用户创建一个remember_token字段,用于保存【记住我】的相关信息

$table->timestamps();

timestamps方法创建了一个created_at和一个·updated_at`字段,分别用于保存用户的创建爱你时间和更新时间。
最终该迁移文件生成的用户表字段信息如下所示:

字段名称字段类型
idinteger
namestring
emailstring
passwordstring
remember_tokenstring
created_atdatetime
updated_atdatetime

* 当我们回滚迁移时,down方法会被调用
down方法会在回滚命令发起时被调用,时up方法的逆向操作,通过Schemadrop方法来删除users

Schema::dropIfExists('users');

2. 查看数据表

  • 数据库迁移
php artisan migrate
  • 数据库回滚
php artisan migrate rollback

3. 模型文件

Laravel默认为我们生成的用户模型中包含了以下内容
Notifiable是消息通知相关功能引用
Authenticatable是授权相关功能的引用
table指明要进行数据库交互的数据库名称

protected $table = 'users';

fillable过滤用户提交的字段,只有包含在该属性中的字段才能被正常更新

protected $fillable = ['name', 'email', 'password'];

hidden用户密码或者其他敏感信息在用户实例通过数组或json显示时进行隐藏

protected $hidden = ['password', 'remember_token'];

1.创建模型

  • 直接创建模型
php artisan make:model Article
  • 指定命名空间
php artisan make:model Models/Article
  • 创建模型同时创建迁移文件
php artisan make:model Models/Article -m

4. 创建用户对象

  • 进入Tinker环境
php artisan tinker

如果要退出 ctrl+c即可

1. 创建一个用户对象

>>> App\Models\User::create(['name'=> 'Aufree', 'email'=>'aufree@yousails.com','password'=>bcrypt('password')])

5. 查找用户对象

  • 使用use来引用App\Models\UserEloquent模型类
>>> use App\Models\User

注意:上面的 use 引用命令只会对当前会话有效,如果中途退出了 Tinker 的话,需要重新再执行一次上面的命令,才能继续使用 User 类名缩写。

  • 查找记录
>>> User::find(1)        //找主键为1 的记录
>>> User::findOrFail(5)  //找主键为5的记录,找不到报错
>>> User::first()        //找到第一条记录
>>> User::all()          //找所有记录
>>> User

6. 更新用户对象

  • 先修改再保存
>>> $user= User::first()
>>> $user->name = 'sumer'
>>> $user->save()
  • 直接使用Update修改
>>> $user=User::first()
>>> $user->update(['name'=>'wangkun','email'=>'526369948@qq.com'])



>操作文件

mkdir app/Models //创建文件夹
mv app/User.php app/Models/User.php //移动文件

>git操作:移除更改:先全部添加,然后全部作废
```git
git add -A
git checkout -f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值