一、路由 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'); //查找路由路径时使用别名即可
}]);

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');

三、视图 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}}

四、模型 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');

五、Reference

轻松学会Laravel-基础篇

laravel 之路由和MVC的更多相关文章

  1. Laravel教程 五:MVC的基本流程

    Laravel教程 五:MVC的基本流程 此文章为原创文章,未经同意,禁止转载. Controller 期间受到很多私事影响,终于还是要好好写写laravel的教程了. 上一篇我们说了数据库和Eloq ...

  2. [PHP] - Laravel - Route路由

    前言 这里使用的是Laravel 5 PHP Laravel的路由比较强悍,但也正因如此,不统一而容易凌乱.比如在路由中可以直接写方法操作(破坏封装啊) 以下是个人学习的例子,不供参考 路由中的直接方 ...

  3. laravel的路由分组,中间件,命名空间,子域名,路由前缀

    laravel的路由分组,就是把一些具有相同特征的路由进行分组,比如一些路由需要进行验证,一些路由有共同的前缀,一些路由有相同的控制器命名空间等. 这样把路由组合在一起,方便管理,维护性更好. Rou ...

  4. laravel之路由

    laravel之路由设置 代码如下: 访问就是: 代码附上: <?php /*|--------------------------------------------------------- ...

  5. 005. Asp.Net Routing与MVC 之三: 路由在MVC的使用

    上次讲到请求如何激活Controller和Action,这次讲下MVC中路由的使用.本次两个关注点: 遗留:ModelBinder.BindModel的过程 MVC中路由的使用 MVC 5中的Acti ...

  6. Laravel中路由怎么写(二)

    1.路由命名——给路由起个名字 1.1 基本使用 我们使用as关键字来为路由命名: Route::get('/hello/Laravel',['as'=>'academy',function() ...

  7. laravel 配置路由 api和web定义的路由的区别详解

    1.路由经过中间件方面不同 打开kerenl.php就可以看到区别 protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware ...

  8. ASP.NET Core 6框架揭秘实例演示[02]:基于路由、MVC和gRPC的应用开发

    ASP.NET Core可以视为一种底层框架,它为我们构建出了基于管道的请求处理模型,这个管道由一个服务器和多个中间件构成,而与路由相关的EndpointRoutingMiddleware和Endpo ...

  9. [Laravel] 02 - Route and MVC

    前言 一.良心资料 英文 Laravel 框架:https://laravel.com/ 教程:https://laracasts.com/series/ laravel-from-scratch-2 ...

随机推荐

  1. SSH框架之Hibernate第二篇

    1.1 持久化类的编写规则 1.1.1 什么是持久化类? 持久化类 : 与表建立了映射关系的实体类,就可以称之为持久化类. 持久化类 = Java类 + 映射文件. 1.1.2 持久化类的编写规则 ( ...

  2. 设计院老师良心汇总:值得牢记的15个CAD基础技巧,能帮大忙

    哈喽!你们的CAD魔鬼(老师)来喽! 良心CAD技巧汇总,设计院师傅精心汇总,值得你牢记的15个CAD基础技巧,满满的都是干货,日常最常见的问题以及解决方法这里都汇总给你,给你高效的绘图体验,关键时刻 ...

  3. PHP SimpleXMLElement::__toString SimpleXML 函数

    定义和用法 SimpleXMLElement::__toString - 返回字符串内容 版本支持 PHP4 PHP5 PHP7 不支持 支持 支持 语法 SimpleXMLElement::__to ...

  4. 使用VSCode创建一个Vue项目

    vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. 安装vue-cli之前,需要先安装了vue和webpack · node -v          //(版本低引起:bas ...

  5. Linux:搭建samba服务器

    samba服务器的搭建 修改防火墙设置 firewall-cmd --permanent --add-service=samba //设置防火墙 firewall-cmd --reload //重新加 ...

  6. 轻量级监控平台之cpu监控

    轻量级监控平台之cpu监控脚本 #!/bin/bash #进程监控脚本 #功能需求: 上报机器的硬件层面-cpu负载数据 . /etc/profile . ~/.bash_profile pushur ...

  7. 剑指Offer-31.整数中1出现的次数(从1到n整数中1出现的次数)(C++/Java)

    题目: 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.A ...

  8. CF1269A Equation

    题目链接 题意 要找两个合数,使他们两个的差为\(n\),\(n\)为题目给出的数 思路 我们可以枚举减数\(now\),判断一下是不是质数,如果是质数就让\(now++\),然后用一个数\(tot\ ...

  9. 乘积量化(Product Quantization)

    乘积量化 1.简介 乘积量化(PQ)算法是和VLAD算法是由法国INRIA实验室一同提出来的,为的是加快图像的检索速度,所以它是一种检索算法,在矢量量化(Vector Quantization,VQ) ...

  10. 干货 | 国内互联网公司是如何做微服务实践的?(附PPT下载)

    微服务的概念最早由Martin Fowler与James Lewis于2014年共同提出,并随着Netflix最佳实践的发布而为业界所知.如今,在国内有了大量的微服务实践案例,5月18日,网易云联合云 ...