路由和MVC

在这里插入图片描述

MVC简介

model是应用程序中处理应用程序数据逻辑的部分
数据库中存储数据

view处理数据显示

controller用户交互
1.从model中获取数据
2.接受view的用户操作,做出相应的响应

理解:
controller从model中获取数据
model返回相应的数据
view从controller返回的数据中进行渲染

开发环境:XAMPP

Laravel核心目录的介绍
APP->HTTP->controller
bootstrap包含框架启动和自动加载配置的环节
config文件配置
public入口,静态资源文件:图片
resources->view原始资源文件
storage包含了日志,缓存等文件
vendor包含下载的依赖模块

laravel中的路由和MVC

路由:

转发(用户请求->相应的程序进行处理) 建立url和程序之间的映射

  • 1.路由简介请求类型:get、post、put、patch、delete

路由只是用来接受请求,并转化为controller方法进行处理

  • 2.基本路由:
Route::get('base',function (){
    return 'base1';//返回base1
});
Route::post('base2',function (){
    return 'base2';  //请求报错
});
  • 3.多请求路由:
Route::match(['get','post'],'multy1', function () {
    return 'multy1';//多请求路由:枚举
});

Route::any('multy2',function (){
    return 'multy2';  //多请求路由:包括所有的请求
});
  • 4.路由参数:
 //Route::get('user/{id}',function ($id=1){
//   return 'user-id-' . $id;
//});

//Route::get('user/{name?}',function ($name='lcy'){
//    return 'user-name-' . $name;
//});

//Route::get('user/{name?}}',function ($name='lcy'){
//    return 'user-name-' . $name;
//})->where('name','[A-Za-z]+');

Route::get('user/{id}/{name?}',function ($id, $name='lcy'){
    return 'user-id-' . $id  .'-name-'. $name;
})->where(['id' => '[1-9]+','name' => '[A-Za-z]+']);
  • 5.路由别名:
Route::get('user/c_center',['as'=>'center',function(){
    return route('center');//可以在控制器或者路由或者模板中生成别名对应的url
}]);
  • 6.路由群组:
Route::group(['prefix' => 'member'], function (){
    //member路由前缀
    Route::get('user/c_center',['as'=>'center',function(){
        return route('center');
    }]);
    Route::any('multy2',function (){
        return 'member-multy2';
    });
});
  • 7.路由视图
Route::get('view', function () {
    return view('welcome');
});

控制器

  • 1.新建控制器
//命名空间
namespace App\Http\Controllers;
class MemberController extends Controller{
    public function info(){
//        return 'member-info';
        //q起别名
        return route('memberinfo');
    }
}
  • 2.控制器和路由的关联

两种方式,运用uses键

//Route::get('member/info','MemberController@info');
Route::get('member/info',['uses' => 'MemberCOntroller@info']);
  • 3.关联之后,路由特性的使用
Route::get('/member/info',[
    'uses'=> 'MemberController@info',
    'as'=> 'memberinfo'
]);

class MemberController extends Controller{
    public function info($id){
        return 'member-info-id-' . $id;
        //q起别名
//        return route('memberinfo');

    }
}
Route::get('member/{id}','MemberController@info')->where(['id'=>'[1-9]+']);

视图

一般来说一个控制器对应一个目录

  • 1.新建视图
class MemberController extends Controller{
    public function info($id){
//        return 'member-info-id-' . $id;
        //q起别名
//        return route('memberinfo');
        return view('member/info',[
            'name'=>'liuchunyan',
            'age'=>'18'
        ]); $id;        //view(名称)

    }
}
  • 2.输出视图

创建默认文件info.blade.php

member info php
{{$name}} {{$age}}

模型

新建模型

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
class Memder extends Model {
    public static function getMember(){
        return 'member name is lcy';
    }
}

使用模型

namespace App\Http\Controllers;
use App\Memder;

class MemberController extends Controller{
    public function info($id){
//        return 'member-info-id-' . $id;
        //q起别名
//        return route('memberinfo');
//        return view('member/info',[
//            'name'=>'liuchunyan',
//            'age'=>'18'
//        ])     //view(名称)
        return Memder::getMember();

    }
}

操作数据库

操作数据库的方式:
数据库的操作之DBfacade、查询构造器、Eloquent ORM三种方式

新建和链接数据库
config/database.php
.env
使用DBfacade实现CURD

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\DB;


class StudentController extends Controller{
    public function test1(){
//         新增
        $bool=DB::insert('insert into student(name,age) value (?,?) ',['lgj',17]);
//        更新
        var_dump($bool);
        $num=DB::update('update student set age= ? where name=?',[19,'lgj']);
        var_dump($num);
//        查询
        $students=DB::select('select * from student');
//        dd($students);
//        删除
         $num=DB::delete('delete from student where id > ?',[1]);
         var_dump($num);
    }
}

创建控制器和模型的快捷方法
在这里插入图片描述

查询构造器

(query builder)简介级新增数据
使用PDO参数绑定,以保护应用程序免于SQL注入。因此传入的参数不需要额外转义特殊字符

  • 1.使用查询构造器新增数据
        //新增
        $bool = DB::table('student')->insert(
            ['name' => 'lgj', 'age' => 18]
        );
        var_dump($bool);
        $id=DB::table('student')->insertGetId(
            ['name'=> 'qyz','age'=>'19']
        );
        var_dump($id);
        $student=DB::table('student')->insert([
            ['name'=>'ct','age'=>28],
            ['name'=>'qh','age'=>18]
        ]);
        dd($student);
  • 2.修改数据

更新为指定内容

       //更新为指定内容
        $num=DB::table('student')
            ->where('id',4)
            ->update(['name'=>'zzc','age'=>19]);
        var_dump($num);
自增和自减
        //自增和自减
        $num=DB::table('student')
            ->increment('age');  //默认自增1
        $num=DB::table('student')
            ->increment('age',3);  //自增3
        //自减类似increment->decrement转化
            $num=DB::table('student')
            ->decrement('age');  //默认自减1
            $num=DB::table('student')
            ->decrement('age',3);  //自减3
        //多条件自增
          $num=DB::table('student')
              ->where('id','>',3)
              ->increment('age',10,['name'=>'iimooc']);  //自增10
        var_dump($num);
  • 3.删除数据

delete

        //使用查询构造器删除数据
        $num=DB::table('student')->where('id','<',4)->delete();
        var_dump($num);
truncate
        $num=DB::table('student')->truncate();  //不返回任何东西,全删
  • 4.查询数据

get()

        //get
        $student=DB::table('student')->get();//获取表的所有数据
first()
        //first 返回第一条记录;
        $student=DB::table('student')
            ->orderBy('id','desc')//倒序
            ->first();
where()
       //where
        $students=DB::table('student')
            ->where('id','>=',4)
            ->get();
        $students=DB::table('student')
            ->whereRaw('id >=? and name=?',[5,'iimooc'])
            ->get();
pluck()
        //pluck
            $names=DB::table('student')
            ->pluck('name','id'); //返回指定的字段
lists()
       //lists返回指定返回某个键的下标
        $names=DB::table('student')->lists('name');//原来laravel以前的版本用的是lists这个方法,而5.3版本则弃用了这个方法,改用方法pluck
select()
        //select不想要所有的字段
       $student=DB::table('student')->select('name','age')->get();
chunk()
//chunk You must specify an orderBy clause when using this function.使用此函数时必须指定orderby子句
echo '<pre>';
DB::table('student')
    ->orderBy('id')
    ->chunk(2,function ($students){
    var_dump($students);
    if (你的条件){
        return false;
        //停止两个两个出来
    }
});//一次查多少条数据(每次查两条,第一次查两个数组)
  • 5.使用聚合函数
count()
//        $num=DB::table('student')->count();
max()
//        $num=DB::table('student')->max('age');
min()
//        $num=DB::table('student')->min('age');
avg()
$num=DB::table('student')->avg('age');
sum()
//        $num=DB::table('student')->sum('age');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值