mvc连接mysql数据库操作_laravel中mvc、数据库操作

控制器

在Laravel的MVC结构中,控制器属于C部分,链接M(modal)和V(view)层,将modal层的数据通过脚本动态添加到view层中。

创建控制器使用命令行模式,切换到laravel根路径下,执行:

php artisan make:controller MemberController

这个创建好的controller放在,laravel根路径下App/Http/Controller/下

创建控制器,执行:

php artisan make:controller MemberController--plain

结合路由设置控制器

当用户请求服务器的test路径时,服务器会执行MemberController中的info方法

Route::get("/member" , 'pengwei@163.com');

带参数的路由使用控制器

Route::get("/user/edit/{id}" , 'pengwei@163.com');

带参数的路由配合中间件使用控制器

Route::get("/member/info/{id}" , [

"mail" => 'pengwei@163.com'

]) ;

2.数据库基本操作

使用原生SQL进行查询。

// 查询

$result=DB::select('select * from la_user where id=?',[$id]);

$result2=DB::select('select * from la_user where id=:id',['id'=>$id]);

// 插入

$affected=DB::insert('insert into la_user(id,name) values(?,?)',[$id,$name]);

// 删除

$deleted=DB::delete('delete from la_user');

// 事务

DB::transaction(function(){

// 执行上面操作

});

// 回滚

DB::rollBack();

构造器

$users=DB::table('la_user')->get();

foreach($users as $user){

echo $user->name;

echo $user->id;

}

获取整行

$user=DB::table('la_user')->first();

echo $user->name;

获取一个字段 value

$user_names=DB::table('la_user')->value('name');

获取一列

$user_name=DB::table('la_user')->pluck('user_name');

设置返回列的数组索引

$name=DB::table('la_user')->pluck('name','id');

组块结果集 chunk

DB::table('la_user')->chunk($Number,function($anyName){

// 这里的$anyName表示的是DB::table('la_user')->select()

foreach($anyName as $key=>$value){

// code...

}

// 如果想停止运行,那么就返回错误

return false;

});

聚合函数

查询 select

DB::table('la_user')->select('id','name')-get();

返回唯一结果 distinct

DB::table('la_user')->select('user_info')->distinct()->get();

使用SQL语句 raw

DB::table('la_user')->select(DB::raw("count(*) as number"))->get();

限制条件 where

where接受三个参数,这三个参数分别是列名、操作符,要比较的值。

$users=DB::table('la_user')->where("user_id","=","100")->first();

多条件查询

$users=DB::table('la_user')->where(array(

['id','=','100'],

['name','=','hello world']

))->get();

或 orwhere

$users=DB::table('la_user')

->where('id','=','100')

->orwhere('id','=','101')

->get();

whereBetween

$users=DB::table('la_user')

->whereBetween('id',[1,100])

->get();

排序 orderBy

// 第二个参数可以指定升序排序 asc 还是降序排列 desc

$users=DB::table('la_user')->orderBy('id','desc')->get();

对结果集进行分组 having / havingRaw

$users=DB::table('la_user')

->groupBy('name')

->having('name','=','King')

->get();

skip / take 对应 offset / limit

条件查询 when

比较直观的说法可以是,在查询中可以根据外部条件确定查询条件:

DB::table('la_user')

->when(

$situation,

function($query){

// 当$situation为true时进行执行

},

function($query){

// 当$situation为false时进行执行

}

)

->get();

这样我们就可以在外部设置$situation的值,通过控制$query,来进行查询了。

插入数据 insert

DB::table('la_user')->insert(

['name'=>'pengwei','emai'=>'pengwei@277.com']

);

插入多组数据

DB::table('la_user')->insert(

['name'=>'one'],

['name'=>'tow'],

['name'=>'there'],

['name'=>'four']

);

获取插入数据后的ID insertGetId

$id=DB::table('name')->insertGetId(

['name'=>'test'],'id'

);

注意!如果不使用 insertGetId 的第二个参数指定表的主键名称的话,那么默认主键名称为 id

更新 update

DB::table('name')

->where('id',100)

->update(

['name'=>'test']

);

删除 delete

DB::table('name')

->where('id',100)

->delete();

分页 paginate

$users=DB::table('name')->paginate(10);

简单分页 simplePaginate

相比于上面的paginate,这里的简单分页仅仅提供上一页、下一页这样的作用。

$users=DB::table('la_user')->simplePaginate(10);

显示分页结果

要将分页的超链接显示在视图中,可以使用如下的形式:

假设控制器传递进来的参数格式如下:

$users=DB::table('la_user')->paginate(10);

return view('User.index',['users'=>$users]);

{{$users->links()}}

在链接中加入参数

{{$users->appends(['name'=>$user_name])->links()}}

季度总结:第一季度计划是学数学英语的,怎奈计划赶不上变化,属实抽不出太多时间,每周学的进步很慢,数学30%其他基本没学,上上周开始还是学个感兴趣的吧,等工作业余时间稍微多点了,课本学习就放在年点报班学吧

周总结:本周继续学的laravel,下周继续,今年目标用这个框架写个网站。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值