模型定义位置:项目路径/app/下,建议分目录管理
一:模型
语法:php artisan make:model 模型名
创建模型:
php artisan make:model Home/Model
二:完善模型
1定义$table属性,值是不带前缀的表名
2 定义$timestamps属性,值是false,如果不设置为false则会默认操作数据库中created at和updated at字段,如果数据库表中无此字段容易报错
3定义fillable属性,表示模型插入数据时允许插入到数据库
定义属性:
//定义模型,一个模型操作一个数据表
protected $table = '表名';
//定义主键
protected $primarykey = 'id';
//定义禁止操作时间
public $timestamps = false;
//允许写入数据库
public $fillable = ['id','username','password','age'];
三:模型使用
在Controller引入模型:
use App\Home\模型; //引入模型
定义测试路由:
//模型测试
Route::group(['prefix'=>'Model'], function () {
Route::match(['get','post'],'add', 'Home\IndexController@madd');//增
Route::match(['get','post'],'del', 'Home\IndexController@mdel');//删
Route::match(['get','post'],'update', 'Home\IndexController@mupdate');//改
Route::match(['get','post'],'select', 'Home\IndexController@mselect');//查
});
四:模型添加
Controller写法:
//模型操作在数据库中增加
public function madd(){
//实例化模型
$model = new User();
//字段映射到属性
$model -> username = 'admin4';
$model -> password = '123123';
$model -> age = '89';
//操作实例映射到记录
$result = $model -> save();
dd($result);
}
浏览器访问:
数据库:
插入方法二:
前台视图写法:
路由:
Route::match(['get'],'/Home/test/index4', 'Home\IndexController@index4');
Controller:
//index4
public function index4(){
return view('Home/test/index4');
}
修改原Controller方法:
//模型操作在数据库中增加
public function madd(Request $request){
//实例化模型
$model = new User();
$result = $model -> create($request -> all());
dd($result);
}
浏览器操作:
数据库:
五:模型查询
- 获取指定id字段数据
Controller写法:
//mselect查询操作
public function mselect(){
//查询指定主键的数据
$data = User::find(4);
dd($data);
}
浏览器访问:
(等到的结果集是一个对象,这时可以使用toArray方法将对象转化成数组输出)
Controller:
//mselect查询操作
public function mselect(){
//查询指定主键的数据
$data = User::find(4);
dd($data -> toArray());
}
- 获取特定条件的第一条数据
Controller写法:
//mselect查询操作
public function mselect(){
//查询id>4的第一条数据
$data = User::where('id','>',4) -> first() -> toArray();
dd($data);
}
浏览器访问:
查询多行字段数据
Controller写法1:
注意all()方法前不能加任何判断方法
//mselect查询操作
public function mselect(){
//查询所有数据
$data = User::all() -> toArray();
dd($data);
}
Controller写法2:
//mselect查询操作
public function mselect(){
//查询所有数据
$data = User::select() -> get() -> toArray();
dd($data);
}
六:模型修改
- 方法一
//Controller中模型修改操作
public function mupdate(){
//ar模式修改操作
$data = User::find(5);
//赋值属性
$data -> age = '44';
//将实例映射到记录
$result = $data -> save();
dd($result);
}
- 第二种方法
//模型修改操作
public function mupdate(){
$result = User::where('id','5')->update(['age' => '77']);
dd($result);
}
七:模型删除
//模型删除操作
public function mdel(){
//ar模式删除操作
$data = User::find(5);
dd($data -> delete());
}