laravel 之路由和MVC

时间:2022-10-23 15:33:57

一、路由 Routes\;

1. 路由简介

  • 简单的说就是将用户的请求转发给相应的程序进行处理。
  • 作用就是建立url和程序之间的映射
  • 请求类型get 、 post、put、patch、delete

2. 基本路由

//基础路由-get/post/put/patch/delete
Route::get('basic1',function(){
    return 'hello world';
});

Route::post('basic2',function(){
    return 'hello world 2';
});

3. 多请求路由

//多请求路由-match/any
Route::match(['get','post'],'multy1',function(){
    return 'multy1';
});

Route::any('multy2', function(){
    return 'multy2';
});

4. 路由参数

//路由参数
Route::get('user/{id}', function($id){
    return 'User-id-:'.$id;
});

//默认参数为空值
Route::get('user/{name?}', function($name = null){
    return 'User-name-:'.$name;
});
//指定默认值
Route::get('user/{name?}', function($name = 'sean'){
    return 'User-name-:'.$name;
});

//正则表达式匹配参数
Route::get('user/{name?}', function($name = 'sean'){
    return 'User-name-:'.$name;
})->where('name', '[A-Za-z]+');

//多参数 正则
Route::get('user/{id}/{name?}', function($id, $name = 'sean'){
    return 'User-id-'.$id.'-User-name-'.$name;
})->where(['id'=>'[0-9]+', 'name'=>'[A-Za-z]+']);

5. 路由别名

//路由别名
Route::get('user/center', ['as' => 'center', function(){
    return route('center'); //查找路由路径时使用别名即可
}]);

laravel 之路由和MVC

6. 路由群组

//路由群组-访问群众中路由时需要加上前缀,如 /member/user/center
Route::group(['prefix' => 'member'], function(){

    //路由别名
    Route::get('user/center', ['as' => 'center', function(){
        return route('center');
    }]);

    Route::any('multy2', function(){
        return 'member-multy2';
    });

});

7. 路由中输出视图

//路由中输出视图-视图所在目录 resources/views/
Route::get('view', function(){
   return view('welcome');
});

 

二、控制器 App\Http\Controllers;

**创建控制器 -> 关联路由和控制器 -> 相关路由特效

<?php
namespace App\Http\Controllers;
use App\Member;

class MemberController extends Controller
{
    public function info($id){
        return 'member-info';
        //return route('memberinfo');
     //return 'member-info-id-'.$id;
} public function getMember(){ return Member::getMember(); } }

 

//路由访问控制器
//方式一

Route::get('member/info', 'MemberController@info');
//方式二 Route
::get('member/info', ['uses' => 'MemberController@info']);
//取别名 Route
::get('member/info', [ 'uses' => 'MemberController@info', 'as' => 'memberinfo' ]);

//传递类型限制的参数
Route::any('member/{id}', ['uses' => 'MemberController@info'])
hu    ->where('id', '[0-9]+');

//hu
Route::get('member', 'MemberController@getMember');

laravel 之路由和MVC

 

三、视图 resources\view\;

1. 新建视图

  • info.php 原生模板
  • info.blade.php 默认模板

2. 输出视图

  • return view('info');
  • 一般习惯一个控制器对应一个view目录(文件夹)
  • return view('member/info')
  • return view('member/info', ['name' => 'sean']);
//MemberController.php  
public function views()
    {
        //return view('member-info');
        return view('info');
     //传递变量给视图
     //
return view('info',
     //   ['name' => 'sean'],
     //   ['age' => 18]
     //);
    }

//web.php
Route::any('views', 'MemberController@views');

//info.blade.php
info blade
{{$name}}{{$age}}

laravel 之路由和MVC

laravel 之路由和MVC

laravel 之路由和MVC

 

四、模型 APP\

1. 模型的创建

一般一个模型对应数据库中的一张数据表

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Student extends Model{
//每个模型对应一个数据表,用于交互数据库

    //指定表名
    protected $table = 'student';

    //指定主键
    protected $primaryKey = 'id';

    //指定允许批量赋值的字段
    protected $fillable = ['name', 'age'];

    //指定不允许批量赋值的字段
    protected $guarded = [];

   public static function getStudent(){
   return 'student is sean';
   }
//自动维护时间戳
   // public $timestamps = true;

    //针对时间戳 将其转换为标准日期格式
//    protected function getDateFormat()
//    {
//        return time();
//    }

    //针对时间戳  不做格式处理
//    protected function asDateTime($val)
//    {
//        return $val;
//    }

}

2. 模型的使用

//StudentController.php
<?php namespace App\Http\Controllers; use App\Student; class StudentController extends Controller { public function info(){ return Student::getStudent(); } }

//web.php
Route::get('student', 'StudentController@info');

laravel 之路由和MVC

 

五、Reference

轻松学会Laravel-基础篇