创建 create.php,创建Create

[TOC]

#### Db用法

~~~

Db::table('user')

->insert([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com',

]);

~~~

#### 模型用法

~~~

$user = new User;

$user->name = 'thinkphp';

$user->email = 'thinkphp@qq.com';

$user->save();

~~~

或者批量设置

~~~

$user = new User;

$user->save([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com',

]);

~~~

上面两种方式等效,当你的模型数据比较多不想一一赋值的时候,可以使用后者。

如果你通过外部提交赋值给模型,并且希望指定某些字段写入,可以使用:

~~~

$user = new User($_POST);

// post数组中只有name和email字段会写入

$user->allowField(['name','email'])->save();

~~~

如果需要过滤非数据表字段的数据,可使用:

~~~

$user = new User($_POST);

// 过滤post数组中的非数据表字段数据

$user->allowField(true)->save();

~~~

#### 获取自增ID

也许你咋一看还觉得麻烦了,又是实例化又是赋值的,但好处多多,慢慢你就会体会到了,看起来是一个简单的赋值和保存操作其实内里大有乾坤,可以触发很多处理甚至事件。

save方法的返回值不是自增主键的值(和Db的execute方法一样返回影响的记录数),要获取自增主键的值可以使用下面的方式:

~~~

$user = new User;

$user->name = 'thinkphp';

$user->email = 'thinkphp@qq.com';

$user->save();

// 获取用户的主键数据

echo $user->id;

~~~

可以使用静态方法创建数据

~~~

$user = User::create([

'name' => 'thinkphp',

'email' => 'thinkphp@qq.com',

]);

echo $user->id;

echo $user->name;

~~~

和save方法不同,create方法的返回值是User模型的对象实例,而save方法调用的时候本身就在对象实例里面。

很多开发者不习惯静态调用,这里必须说明的是模型类的静态CURD操作其实都是内部自动实例化而已,所以说白了提供的这些静态操作方法只是对动态CURD操作方法的静态封装罢了。

#### 创建操作用法小结

| 方法 | 返回值 |

| --- | --- |

| save(动态)| 影响的记录数 |

| create(静态) | 模型对象实例 |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值