php psr4 控制器调用模型,控制器中调用模型添加数据
> ## 在控制器中調用模型進行添加數據
### 1. 添加一條數據《save方法新增數據返回的是寫入的記錄數。》
```php
// 注意不要在同一個實例里面多次新增數據,如果實在需要,第二次開始必須使用下面的方式新增
$user->isUpdate(false)->save();
// 使用model助手函數可以快速實例化一個單例的模型對象,不需要特意引入模型類
$user = model('User');
// 1.如果為少量字段直接賦值
$user = new User;
$user->name = 'thinkphp';
$user->save();
// 2. 如果為多個字段支持傳入數組
$user = new User;
$user->data([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$user->save();
// 還可以直接在實例化的時候傳入(這種簡單)
$user = new User([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$user->save();
// 3. 插入前過濾非數據表字段
user = new User($_POST);
$user->allowField(true)->save();
// 4. 限制指定字段可以插入
$user = new User($_POST);
$user->allowField(['name','email'])->save();
```
### 2. 添加多條數據《saveAll方法新增數據返回的是包含自增id的數據集。》
```
// saveAll方法會自動判斷更新還是新增,當數據包含主鍵時會被認為更新,當不包括主鍵時被認為是新增
$user = new User;
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'onethink','email'=>'onethink@qq.com']
];
$user->saveAll($list);
// 強制插入非更新,那么
$user = new User;
$list = [
['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'],
['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'],
];
$user->saveAll($list, false);
```
### 3. 使用靜態方法添加數據(create方法返回的是當前模型的對象實例。)
```php
$user = User::create([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
echo $user->name;
echo $user->email;
echo $user->id; // 獲取自增ID
```
> ## 在模型中獲取自增的主鍵id
```php
$user = new User;
$user->name = 'thinkphp';
$user->save();
// 獲取自增ID
echo $user->id;
// 如果表中的字段不是id,而是user_id,那么
echo $user->user_id;
```
總結
以上是生活随笔為你收集整理的php psr4 控制器调用模型,控制器中调用模型添加数据的全部內容,希望文章能夠幫你解決所遇到的問題。