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. 模型内容
<?phpnamespace 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. 模型的增删改查
增加数据
<?phpnamespace 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();