前言


一、良心资料

  • 英文

Laravel 框架:https://laravel.com/

 
  • 中文

轻松学会Laravel-基础篇   <---- from.

轻松学会Laravel-中级篇

轻松学会Laravel-高级篇

基本路由


一、基本思路

  • 默认框架结构

URL --> [映射] --> 程序

app       -- Https 业务逻辑

          -- Http/routes.php【返回 (1) view --> resources/views/welcome.blade.php】

bootstrap -- 框架启动,自动加载

          -- autoload.php【加载 (1) /../vendor/autoload.php】

          -- app.php【实例化 (2) app and then return $app】

config    -- 配置文件,such as cache.

database -- 数据库相关资源

public    -- 静态资源, such as pic.

          -- index.php【加载 (1) /../bootstrap/autoload.php then (2) app.php】

resources -- 视图以及原始的资源文件,views就是mvc中的v

          -- views/welcome.blade.php【显示的首页 (2) html内容】

storage   -- 编译后的模板文件等。

tests     -- 单元测试。

vendor    -- 依赖模块 
  • 路由示范

基础路由,多请求路由,示范如下:

多请求路由:

Route::match 既支持get,也支持post;

Route::any 响应所有的请求;

详见API中文文档:https://docs.golaravel.com/docs/5.0/routing/

Ref: [Node.js] 07 - Html and Http

二、URL 处理

  • 路由 '参数'

[1] Extract id in url.

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

[2] Extract name? in url. sean是默认参数。【有默认参数就加了个问号】

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

[3] 正则表达式限制路由参数。

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

[4] 参数综合起来

Route::get('user/{id}/{name?}', function($id, $name = 'sean') {
return 'User-id-' . $id . '-name' . $name;
}) -> where(['id' => '[0-9]+', 'name', '[A-Za-z]+');
  • 路由 ’重定向’ 与 ‘别名’

** "重定向" 的意思是?

当用户访问 /a时,URL 将会被替换成 /b,然后匹配路由为 /b.

if ($student->save()) {
  return redirect('student/index');
} else {
  return redirect()->back();
}

** “别名”又是什么呢?

/a 的别名是 /b,意味着,当用户访问 /b 时,URL 会保持为 /b,但是路由匹配则为 /a,就像用户访问 /a 一样。【两个URL对应一个页面】

『别名』的功能让你可以自由地将 UI 结构映射到任意的 URL,而不是受限于配置的嵌套路由结构。

"member-center" 的别名为 “center"。

显示效果:

  • 路由群组

有了层级关系。

./member/user/center就可以访问了。

  • 路由中输出视图

其实就是之前的 return view('welcome');

控制器


一、控制器关联路由

  • 关联方法:URL --> [映射] --> 程序

MembrConroller 里的方法 info()的表达方式:MemberController@info

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

Or array type: 
Route::get('member/info', ['uses' => 'MemberController@info']
  • 路由别名

[routes.php]

  • 参数绑定 

[1] 打开路由,调用一个远在另一个文件夹的函数。

Route::any('member/{id}', ['uses' => 'MemberController@info']);]

[2] 函数在这里,就是controller。

视图


一、如何使用 view

URL --> [映射] --> 程序 --> 界面

在resource/views中,例如建立:member-info.php这个view文件。

那么,我们就可以通过 return view('member-info'); 来使用。

[1] 控制器 Controller 带有参数:name & age。

[2] 视图 View 显示参数内容。

模型


一、新建一个模型

在app目录下新建:Member.php

二、如何调用模型

因为是静态方法,所以可以直接在 Controller 中调用 Model方法。

[Laravel] 02 - Route and MVC的更多相关文章

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

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

  2. laravel named route

    laravel中一般对于路由的使用方法是在routes.php中定义一个路由,在view中如果要引用一个url则直接通过<a href="url/">来使用. 但是随着 ...

  3. Laravel创建Route

    <?php /* |-------------------------------------------------------------------------- | Routes Fil ...

  4. 本周ASP.NET英文技术文章推荐[02/03 - 02/16]:MVC、Visual Studio 2008、安全性、性能、LINQ to JavaScript、jQuery...

    摘要 继续坚持,继续推荐.本期共有9篇文章: 最新的ASP.NET MVC框架开发计划 Visual Studio 2008 Web开发相关的Hotfix发布 ASP.NET安全性教程系列 ASP.N ...

  5. ASP.NET MVC 5 02 - ASP.NET MVC 1-5 各版本特点

    参考书籍:<ASP.NET MVC 4 高级编程>.<ASP.NET MVC 5 高级编程>.<C#高级编程(第8版)>.<使用ASP.NET MVC开发企业 ...

  6. Laravel 获取 Route Parameters (路由参数) 的 5 种方法

      Laravel 获取路由参数的方式有很多,并且有个小坑,汇总如下.   假设我们设置了一个路由参数:   现在我们访问 http://test.dev/1/2   在 TestController ...

  7. laravel 之路由和MVC

    一.路由 Routes\; 1. 路由简介 简单的说就是将用户的请求转发给相应的程序进行处理. 作用就是建立url和程序之间的映射 请求类型get . post.put.patch.delete 2. ...

  8. 02点睛Spring MVC 4.1-@RequestMapping

    转发地址:https://www.iteye.com/blog/wiselyman-2213907 2.1 @RequestMapping @RequestMapping是SpringMVC的核心注解 ...

  9. [Laravel] 14 - REST API: Laravel from scratch

    前言 一.基础 Ref: Build a REST API with Laravel API resources Goto: [Node.js] 08 - Web Server and REST AP ...

随机推荐

  1. Hessian学习总结(一)——Hessian入门

    一.远程通讯协议的基本原理 网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 http . tcp . udp 等等, http . ...

  2. 谈一下Docker与Kubernetes集群的日志和日志管理

    本文的测试环境为CentOS 7.3,Kubernetes集群为1.11.2,安装步骤参见kubeadm安装kubernetes V1.11.1 集群 日志对于我们管理Kubernetes集群及其上的 ...

  3. 手把手教你 Mockito 的使用

    什么是 Mockito Mockito 是一个强大的用于 Java 开发的模拟测试框架, 通过 Mockito 我们可以创建和配置 Mock 对象, 进而简化有外部依赖的类的测试.使用 Mockito ...

  4. Kafka与常见消息队列的对比

    Kafka与常见消息队列的对比 RabbitMQ Erlang编写 支持很多的协议:AMQP,XMPP, SMTP, STOMP 非常重量级,更适合于企业级的开发 发送给客户端时先在中心队列排队.对路 ...

  5. GitHub for Windows简单使用

    1.什么是Github gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub. gitHub于2008年4月10日正式上线,除了git代 ...

  6. virt-manager中为centos 7.2 扩容根分区

    1. 打开virt-manager,添加一块磁盘. Add Hardware --> 选中Storage --> Manager (操作参考下图) 点击Manager之后,弹出Choose ...

  7. 微软BI 之SSIS 系列 - Execute SQL Task 中的 Single Row 与 Full Result Set 的处理技巧

    开篇介绍 Execute SQL Task 这个控件在微软BI ETL 项目中使用的频率还是非常高的,也是大部分入门 SSIS 初学者最早接触到的几个控制流控件. 我们通常使用 Execute SQL ...

  8. shell编程中的控制判断语句

    if 单格式与嵌套 if 条件表达式;then #当条件为真时执行以下语句 命令列表 else #为假时执行以下语句 命令列表 fi if 语句也可以嵌套使用 if 条件表达式1;then if 条件 ...

  9. 救基友3(三维BFS)

    救基友记3 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描写叙述   话说CZ因为不守基道.被妖怪抓走了.好基友WP在努力讨好高富帅 ...

  10. Shell脚本编程基础笔记一

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/8176137.html 一:脚本文件的创建.格式.运行 1:创建shell脚本 首先,要创建一个文件 touch ...