1. 模型一般创建的app目录下, 一般首字母大写
2. 创建模型命令:
php artisan make:model Admin/Member
// 如果加上 -m 则同时生成迁移文件
php artisan make:model Admin/Member -m
还记得创建控制器的命令吗:
php artisan make:controller TestController
还记得创建迁移文件的命令:
// 创建迁移文件
php artisan make:migration create_zidingyi_table --create=zidingyi
// 修改迁移文件(增加字段)
php artisan make:migration update_users_table --table=users
// 生成迁移文件
php artisan migrate
还记得创建填充文件的命令:
php artisan make:seeder perperTableSeeder
// 执行填充文件
php artisan db:seed --class=perperTableSeeder(需要执行的种子文件名)
// 直接使用DB::table()
还记得创建模型工厂的命令:
// 来为 User Model 创建一个工厂类,该文件会放在 database/factory 目录下
php artisan make:factory UserFactory --model=User
return 的值就是我们第 2 步调用工厂获取到的数据。生成数据的逻辑也只需要写在闭包函数中就可以。这里需要提一下 Faker 这个类,这是一个第三方库,Laravel 集成了这个第三方库
参考链接: Laravel factory 使用指引 | Laravel China 社区
在填充文件中使用
factory(App\User::class)->times(10)->make()->each(function($user,$index){
$user->save();
});
3. 模型内容
<?php
namespace App\Home;
use Illuminate\Database\Eloquent\Model;
class Member extends Model
{
//定义模型关联的数据表(一个模型至操作一个表)
// 表名
protected $table = 'member';
// 定义主键
protected $primaryKey = 'id';
// 设置允许写入的数据字段
protected $fillable = ['id', 'name', 'age', 'email'];
// 定义禁止操作时间
public $timestamps = false;
//模型序列化:Date 类型转换
protected $casts = [
'created_at' => 'date:Y-m-d H:i:s',
'updated_at' => 'date:Y-m-d H:i:s',
];
}
4. 模型的增删改查
增加数据
<?php
namespace App\Http\Controllers\Home;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Admin\Member; // 这个是模型
class IndexController extends Controller
{
public function getName(Request $request) {
$model = new Member();
$requests = $request -> all();
$result = $model -> create(['id' => $requests['id'], 'name' => $requests['name'], 'age' => $requests['age'], 'adress' => $requests['adress']]);
dd($result);
}
}
查询表的所有记录
$user = Admin::all();
查询某一条记录
$user = Admin::find(2);
findOrFail() 根据主键查找,如果没有找到就抛出异常
$user = Admin::findOrFail(1);
查询所有记录
$user = Admin::get();
使用模型的Create方法新增数据
$user = Admin::create(['username'=>'meimei']);
以属性查找用户,如果没有则新增
$user = Admin::firstOrCreate(['username'=>'66666']);
以属性查找用户,如果没有则新增,但不保存到数据库
$user = Admin::firstOrNew(['username'=>'77777']);
增加条件
$num = Admin::where('id','>','1')->update(['age'=>21]);
通过模型删除
//$user = Admin::find(6);
//$bool = $user->delete();
通过主键删除
$num = Admin::destroy(6);
删除多条记录
$num = Admin::destroy(1,2,3);
$num = Admin::destroy([1,2,3]);
增加条件删除
$num = Admin::where('uid','>','4')->delete();