路由里面可以做所有事情,但是真正的项目当中,路由只用来接收请求,并转发给控制器的方法进行处理

首先我们先了解一下

一、app/Http/routes路由的用法:

方法一、

这种方法写完后在控制器创建方法是直接写名称就行了,但这个方法会让我们在每在控制器写一个方法时,都要去routes里面配置一次路由的;

any是任何方式的传值都能接收:Route::any('/home', 'HomeController@home');

post是只接受以post传值的方法:Route::post('/home', 'HomeController@home');

get是只接受以get传值的方法    :Route:get('/home', 'HomeController@home');

图解:

方法二、

直接写控制器名称但这也有要求的 介绍如下

路由中书写
Route::controller('/', 'HomeController');

图解:

这种方式路由中只需要配置一次,完成后,我们在控制器中在建立方法时只需要加上get,and,post前缀就行了。

如下:

切记:在传参数时前面要加上传参方式,然后在书写方法名称,记住首字母要大写,最好不要使用驼峰式命名,容易报错。

如果跳转路径的话,是一样的直接跳转方法名称就好了;

二、app/Http/Controllers(控制器路径),resources/views(视图路径)和自定义的Model的用法:

1.如何创建一个控制器

找到控制器路径书写方法名就行

在控制器内的创建方式:

<span style="font-size:14px;"><?php
namespace App\Http\Controllers; //调用laravel中一封装好的控制类文件
use App\Http\Controllers\Controller;//调用Controller控制器的路径;
class HomeController extends Controller
{
    public function getIndex(){
        return redirect('/login/log');//跳转控制器
    }
    public function getShow(){
        return view('index',['data'=>$data]);//加载视图层和传值方式;
    }
}</span>  

创建一个Model层

首先我们要知道在laravel5.2中model层其实是自行创建的,只不过在控制调用时加上use路径就好了;

我们可以直接建立app目录下或者创建一个文件夹将model写入里面;

在内我们要增删改查的话进入laravel的在线手册即可,里面有详细的说明和用法;

在app下创建:

在model中的书写:

<span style="font-size:14px;"><?php
namespace App;
use Illuminate\Database\Eloquent\Model;//调用Model方法的读写路径;
use Illuminate\Support\Facades\DB;//调用DB方法的读写路径;(如果不使用这种方法,这个可以不用掉用)
class Country extends Model
{
    protected $tableName = 'country';//表名称;
    public function index()//查
    {
       return $this->all();//$this相当于Model和DB重新组合成的一个类,这个$this由于在DB中不存在all()的形式,所以这个$this指的是Model。
    }
}</span>  

创建Views视图层:在创建Views是最简单的但在laravel中我们就要写成php形式的了;

方法如下:

跳转方式:

在视图层中加载样式引用方法:{{ URL::asset(‘’) }};

控制器(C)

1.怎么新建一个控制器?

  在App\Http\Controllers目录下新建一个名为:MemberController的控制器

<?php

namespace App\Http\Controllers;    //命名空间

class MemberController extends Controller    //继承于控制器基类
{
    public function info($id)
    {
        return 'member-info-id-'.$id;
        // return route('memberinfo');        //通过路由别名找到路由地址
    }
}

2.控制器和路由怎样进行关联?

3.关联控制器后,路由的特性怎么用?

通过路由访问控制器// Route::get('member/info',['uses' => 'MemberController@info']);

// Route::get('member/info',['uses' => 'MemberController@info','as' => 'memberinfo']);    //as:路由别名

// Route::get('member/{id}',['uses' => 'MemberController@info']);    //路由参数

Route::get('member/{id}',['uses' => 'MemberController@info'])->where('id','[0-9]+');    //路由参数(条件)

视图(V)

1.怎样新建视图?

  在resources\views目录下新建一个名为member-info.php的文件(支持原生php)

<?php
echo 'member-info-php';

  默认模板
    在resources\views目录下新建一个名为info.blade.php的文件(在控制器中输出的时候不需要书写全名,只需要输入blade前面的部分就可以了)

2.怎样输出视图?

  在控制器中return view('文件名’);

一般一个控制器会对应一个视图目录(输出的时候记得要加上目录的名称)

在控制器中可以添加变量,在模板中调用标量需要用:{{$变量名}}来调用。注意:.blade.php才可以输入变量

模型(M)

1.怎样新建模型?

  在App目录下新建Member.php文件

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Member extends Model
{
    public static function getMember()    //静态方法
    {
        return 'member name is chenlin';
    }
}

2.怎样使用模型?

  在控制中一定要记得导入你所创建的类

<?php

namespace App\Http\Controllers;    //命名空间

use App\Member;        //导入类

class MemberController extends Controller    //继承于控制器基类
{
    public function info($id)
    {

        return Member::getMember();  //返回静态方法

    }
}

[2018-01-12] laravel中的MVC的更多相关文章

  1. cron以及在laravel中使用cron

    yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...

  2. PHP中的MVC

    在PHP中使用MVC越来越流行了,特别是在一些开源的框架当中.MVC足以应对大多数的情况,但还有一些情况是其不太适合的,如比较简单的个人博客,对于只有几百篇文章量级的博客,使用MVC让人觉得有些太复杂 ...

  3. 在Laravel中一步一步创建Packages

    首先要看一下Laravel官方文档,这是最新4.2的文档,假设想看中文的话点击此处,基本一样.这个github上的库setup-laravel4-package,也是一步一步介绍怎样创建一个包.并关联 ...

  4. 2018年12月8日广州.NET微软技术俱乐部活动总结

    吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ...

  5. 2018.5.12 storm数据源kafka堆积

    问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ...

  6. laravel中请求用例$request可用的一些方法小结

    laravel中$request可用的一些方法小结 1,请求方法的获取 $method = $request->method(); 2,检测请求方法 $res = $request->is ...

  7. SpringMVC(二六) SpringMVC配置文件中使用mvc:view-controller标签

    在springmvc中使用mvc:view-controller标签直接将访问url和视图进行映射,而无需要通过控制器. 参考springmvc.xml内容: <?xml version=&qu ...

  8. 20172319 2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)

    20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ...

  9. 在Oracle电子商务套件版本12.2中创建自定义应用程序(文档ID 1577707.1)

    在本文档中 本笔记介绍了在Oracle电子商务套件版本12.2中创建自定义应用程序所需的基本步骤.如果您要创建新表单,报告等,则需要自定义应用程序.它们允许您将自定义编写的文件与Oracle电子商务套 ...

随机推荐

  1. Python selenium+phantomjs的js动态爬取

    Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Chrome等.Phanto ...

  2. pinpoint1.8.5安装及使用指南

    简介 pinpoint是开源在github上的一款APM监控工具,它是用Java编写的,用于大规模分布式系统监控.它对性能的影响最小(只增加约3%资源利用率),安装agent是无侵入式的. 各大APM ...

  3. 响应系统设置的事件(Configuration类)

    1.Configuration给我们提供的方法列表 densityDpi:屏幕密度 fontScale:当前用户设置的字体的缩放因子 hardKeyboardHidden:判断硬键盘是否可见,有两个可 ...

  4. Kafka安装-Linux版

    1.   准备 1.1    Kafka Kafka版本采用0.10.2.1,下载0.10.2.1文件 http://kafka.apache.org/downloads 1.2    JDK JDK ...

  5. 一种Cortex-M内核中的精确延时方法

    本文介绍一种Cortex-M内核中的精确延时方法 前言 为什么要学习这种延时的方法? 很多时候我们跑操作系统,就一般会占用一个硬件定时器--SysTick,而我们一般操作系统的时钟节拍一般是设置100 ...

  6. jQuery.noConflict()解决imgBox.js依赖jquery版本问题

    jQuery提供两种点击图片放大效果出处 在使用imgbox.js是出现的jquery版本不兼容问题,之后了解到jQuery.noConflict()的用法 jQuery.noConflict()的存 ...

  7. Django高级实战 开发企业级问答网站 ✌✌

    Django高级实战 开发企业级问答网站 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 从实际需求分析开始,实现当今主流知识问答应用的功能,包括动态.文章.问 ...

  8. SQLMAP SSI注入错误解决

    记一次SQL注入 目标地址:https://www.xxxx.com/ 之前补天提交过这个注入  后来貌似”修复了”(实际就是装了安全狗和过滤了一些关键字) 不过今天试了下 还是可以注入 可以看到已经 ...

  9. [NOIp2010] luogu P1541 乌龟棋

    英语老师讲 mind map,真想说一句"声微饭否".为什么wyy的歌词总是快一点点.在报csp. 题目描述 你在一个序列上向正方向行走,起点是 a[0]a[0]a[0].每一步可 ...

  10. [Luogu1313][NOIP2011提高组]计算系数

    题目描述 给定一个多项式 (by+ax)k(by+ax)^k(by+ax)k ,请求出多项式展开后 xn×ymx^n \times y^mxn×ym 项的系数. 输入输出格式 输入格式: 共一行,包含 ...