六、模型laravel框架的模型文件在app目录下,统一首字母大写,文件名与类名一致,统一继承于 IlluminateDatabaseEloquentModel 基类;
(一)、新建模型及使用 1 //模型文件 Admin.php 2 <?php 3 /** 4* Created by PhpStorm. 5* User: Administrator 6* Date: 2018/8/25/025 7* Time: 13:35 8*/ 9 namespace App;10 use IlluminateDatabaseEloquentModel;11 12 class Admin extends Model13 {14public static function getAdmin()15{16return 'this is admin model static getAdmin action';17}18 19 }20 21 ?>22 23 24 //控制器文件 AdminController.php25 <?php26 /**27* Created by PhpStorm.28* User: Administrator29* Date: 2018/8/25/02530* Time: 0:5131*/32 namespace AppHttpControllers;33 34 class AdminController extends Controller35 {36public function index()37{38return Admin::getAdmin();39}40 }(二)、数据库操作连接数据库MySQL,laravel的数据库连接只需要配置好数据库的配置文件即可,也就是config目录下的database.php
1 //database.php文件 234 'mysql' => [ 5'driver' => 'mysql', 6'host' => env('DB_HOST', 'localhost'), 7'port' => env('DB_PORT', '3306'), 8'database' => env('DB_DATABASE', 'forge'), 9'username' => env('DB_USERNAME', 'forge'),10'password' => env('DB_PASSWORD', ''),11'charset' => 'utf8',12'collation' => 'utf8_unicode_ci',13'prefix' => 'shop_',14'strict' => false,15'engine' => null,16]17 18 //配置文件读取的是.env文件的内容打开.env文件,做如下配置修改即可连接到mysql数据库
1 APP_ENV=local 2 APP_DEBUG=true 3 APP_KEY=base64:IxkVvrRLqdJeU9h8vGu1W58OG3NVuDtkMWyC6nIT4qs= 4 APP_URL=http://localhost 56 //mysql连接配置 7 DB_CONNECTION=mysql 8 DB_HOST=localhost 9 DB_PORT=330810 DB_DATABASE=shop11 DB_USERNAME=root12 DB_PASSWORD=root13 14 CACHE_DRIVER=file15 SESSION_DRIVER=file16 QUEUE_DRIVER=sync17 18 redis_HOST=127.0.0.119 REDIS_PASSWORD=null20 REDIS_PORT=637921 22 MAIL_DRIVER=smtp23 MAIL_HOST=mailtrap.io24 MAIL_PORT=252525 MAIL_USERNAME=null26 MAIL_PASSWORD=null27 MAIL_ENCRYPTION=null1、使用DB facade操作数据库类似原生的sql语句进行curd操作,例如:新建一个表user包含id、username、passwrod、email、sex、create_time、update_time字段
1 <?php 2 /** 3* 使用DB facade进行CURD操作 4* Created by PhpStorm. 5* User: Administrator 6* Date: 2018/8/25/025 7* Time: 0:51 8*/ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17public function query()18{19//查询20$user_list = DB::select('select * from user');//返回数组21 22 23//新增24$bool = DB::insert('insert into user(username,email,sex) values(?, ? ,?)',25 ['admin', 'example@mail.com', '1']);//返回布尔值26 27//修改28$rows = DB::update('update user set password=? where username=?',['123456', 'admin']);//返回影响的行数29 30//删除31$rows = DB::delete('delete from user where username=?', ['admin']);//返回删除的行数32 33}34 }使用DB facade操作数据库,初学还是很简单的,因为原生的sql还是比较熟的 。
2、使用查询构造器操作数据库使用查询构造器进行数据库操作使得操作简介、方便,示例使用上面的user表进行演示
查询构造器----新增数据 1 <?php 2 /** 3* 查询构造器之新增数据 4* Created by PhpStorm. 5* User: Administrator 6* Date: 2018/8/25/025 7* Time: 0:51 8*/ 9 namespace AppHttpControllers;10 use AppHttpControllersController;11 use IlluminateHttpRequest;12 use IlluminateSupportFacadesDB;13 14 class AdminController extends Controller15 {16 17public function query()18{19//插入一条数据20$bool = DB::table('user')->insert(21['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1]22);//返回布尔值23 24//插入一条数据返回插入的id25$insert_id = DB::table('user')->insertGetId(26['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1]27);28 29 30//插入多条数据31$bool = DB::table('user')->insert([32['username' => 'yuwenbo', 'email' => 'example@mail.com', 'sex' => 1],33['username' => 'tom', 'email' => 'example@mail.com', 'sex' => 0]34]);35 36}37 38 }查询构造器-----更新数据:更新指定内容和自增自减两种方式 1 <?php 2 /** 3* 查询构造器之更新数据 4* Created by PhpStorm. 5* User: Administrator 6* Date: 2018/8/25/025 7* Time: 0:51 8*/ 9 namespace AppHttpControllers;11 use AppHttpControllersController;12 use IlluminateHttpRequest;13 use IlluminateSupportFacadesDB;14 15 class AdminController extends Controller16 {17 18public function query()19{20//更新指定内容21$rows = DB::table('user')->where('username','admin')->update(['password' => '123456']);//返回影响的行数22 23//更新自增自减24$rows = DB::table('user')->where('username','admin')->increment('sex');//自增125$rows = DB::table('user')->where('username','admin')->increment('sex',$n);//自增n26 27$rows = DB::table('user')->where('username','admin')->decrement('sex');//自减128$rows = DB::table('user')->where('username','admin')->decrement('sex',$n);//自减n29 30//自增同时修改其它内容31$rows = DB::table('user')->where('username','admin')->increment('sex', 3, ['email' => '4546464684@mail.com']);//自增同时修改内容32 33}34 35 }
推荐阅读
- 10分钟搭建基于Spring Cloud的微服务框架
- Ceph块存储之RBD
- Tomcat应用配置之web.xml
- 趣谈龙井茶与虎跑泉之由来
- 趣谈台湾冻顶乌龙茶之来历故事
- 健康饮食 宁海开元推出茶之韵美食节
- 茶叶趣事之成败皆因嗜茶
- 肾病低蛋白饮食
- 信阳国际茶文化节将上演信阳时空之旅
- 个茶字妙解万余户茶农的品牌之困
