Laravel入门:MVC框架
2019独角兽企业重金招聘Python工程师标准>>>
本文基于Laravel 4.2编写。
- 路由Hello World 在app/routes.php里面添加下面代码,然后在浏览器里访问http://<laravel host prefix>/helloworld可以见到结果。
Route::get('/helloworld', function() {return '<html><body>hello world</body></html>';
});
- 视图(View) 理论上可以把所有代码都写在app/routes.php里面,但是这会令代码难以维护。于是,我们可以把具体的页面内容搬到视图里,让路由文件简短一些。
app/routes.php
Route::get('/helloworld', function() {return View::make('helloworld');
});app/views/helloworld.php<html><body>hello world</body>
</html>
- 控制器(Controller) 我们写的是动态网页,页面里有变量,变量通过Controller传入View。
app/routes.php(这次我们的路由要先指向Controller,然后再由Controller返回View内容)
Route::get('/helloworld', 'HelloworldController@say');
app/controllers/HelloworldController.php
<?php
class HelloworldController extends BaseController {public function say() {$action = 'hello';$name = 'kitty';return View::make('hello.world', compact('action', 'name')); // hello.world表示hello目录里的world.php文件; 我们传入两个变量$action和$name}
}
app/views/hello/world.php(这次我们放在一个子目录里,避免views目录文件太多)
<html><body>{{$action}} {{$name}}</body>
</html>
页面将显示“hello kitty”
- 模型(Model) 随着业务逻辑的复杂,Controller文件会变长不好维护,那么我们可以把和数据库查询相关的逻辑分到模型层里,甚至可以安排一个擅长数据库表设计和写SQL的人专门负责这一层。
app/routes.php
Route::get('/helloworld', 'HelloworldController@say');app/controllers/HelloworldController.php <?php
class HelloworldController extends BaseController {public function say() {$name = 'kitty';$contacts = Contact::getContacts();return View::make('hello.world', compact('name', 'contacts'));}
}
app/models/Contact.php
<?php
// 假设有个表contacts(uid, name, phone)
class Contact extends Eloquent {public $timestamps = false;protected $primaryKey = 'uid';static public function createContact($uid, $name, $phone) { // 这个方法只是演示Model可能有些什么内容,并没有实际调用。$item = new Contact;$item->uid = $uid;$item->name = $name;$item->phone = $phone;$item->save();return $item;}// 假设有两行内容:(1, ‘kitty’, ‘800888’), (2, 'dingdong', '900999')static public function getContacts {return DB::table('contacts')->get();}
}
app/views/hello/world.blade.php(由于需要使用循环等超越HTML语法的功能,我们需要使用blade模板语言,文件名里需要添加blade部分)
<html><body>
@foreach ($contacts as $contact){{ $contact->name }}’s number is {{ $contact->phone }},
@endforeach</body>
</html>
页面将显示“kitty's number is 800888, dingdong's number is 900999,”
模板语言更多语法可参考:https://laravel.com/docs/4.2/templates
至此,MVC(Model-View-Controller)的框架进化完成。
转载于:https://my.oschina.net/HeYuhui/blog/654698
Laravel入门:MVC框架相关推荐
- 维纳斯和阿多尼斯故事_认识阿多尼斯! 适用于Node.js的Laravel样式MVC框架
维纳斯和阿多尼斯故事 Node.js is one of the emerging technologies to write real-time applications using one of ...
- 小白laravel入门
小白laravel入门 学习框架所需解决问题 1.入口文件 2.如何调用页面 3.数据库如何配置 4.控制器如何调用数据库 5.如何调用模板 6.控制器如何调到另一个控制器 7.如何配置路由 华丽~~ ...
- ASP.NET Core 入门教程 2、使用ASP.NET Core MVC框架构建Web应用
原文:ASP.NET Core 入门教程 2.使用ASP.NET Core MVC框架构建Web应用 一.前言 1.本文主要内容 使用dotnet cli创建基于解决方案(sln+csproj)的项目 ...
- spring框架mvc框架_Spring的MVC测试框架入门–第1部分
spring框架mvc框架 最新推出的主要Spring框架是Spring MVC测试框架,Spring Guys声称它是"一流的JUnit支持,可通过流畅的API测试客户端和服务器端Spri ...
- spring框架mvc框架_Spring MVC测试框架入门–第2部分
spring框架mvc框架 这个迷你系列的第一个博客介绍了Spring MVC测试框架,并演示了其在单元测试Spring MVC Controller类中作为控制器而不是POJO进行单元测试的用途. ...
- 【Java学习路线之JavaWeb】Spring MVC框架入门教程
文章目录 读者 阅读条件 MVC设计模式简介 JSP+JavaBean Servlet+JSP+JavaBean MVC优缺点 优点 缺点 Spring MVC是什么 Spring MVC优点 第一个 ...
- .NET轻量级MVC框架:Nancy入门教程(二)——Nancy和MVC的简单对比
在上一篇的.NET轻量级MVC框架:Nancy入门教程(一)--初识Nancy中,简单介绍了Nancy,并写了一个Hello,world.看到大家的评论,都在问Nancy的优势在哪里?和微软的MVC比 ...
- nodejs MVC框架:Adonisjs框架入门-001概述
Adonisjs是一个MVC结构的Nodejs后端框架,可以用来创建WEB应用.API服务,包含处理 HTTP adonisjs是一个后端mvc框架,基于nodejs,使用typescript语言编写 ...
- thinkph 上花院 生多行mysql_PHP_ThinkPHP3.1基础知识快速入门,在当今众多的MVC框架中,ThinkPH - phpStudy...
ThinkPHP3.1基础知识快速入门 在当今众多的MVC框架中,ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,其遵循Apache2开源协议发布,自从诞生以来一直秉承简 ...
- Asp.net Core基于MVC框架实现PostgreSQL操作
简单介绍 Asp.net Core最大的价值在于跨平台.跨平台.跨平台.重要的事情说三遍.但是目前毕竟是在开发初期,虽然推出了1.0.0 正式版,但是其实好多功能还没有完善.比方说编译时的一些文件编码 ...
最新文章
- Linux 小知识翻译 - 「命令行的提示符」
- 开辟与退出一个新的栈帧常用的汇编语言指令
- 新生代中Eden:S1:S2为什么是8:1:1?
- 大剑无锋之DQL、DML、DDL、DCL,简单举个例子【面试推荐】
- JSP(Servlet)中从连接池获取连接
- 制作镜像包时遇到的模块加载错误的问题
- php自动采集入库,Phpcms v9自动采集入库自动发布组件
- PS亮度蒙版扩展插件:Lumenzia for Mac 支持ps2021
- bada 2D游戏编程之一——图形绘制
- 蚂蚁课堂视频笔记思维导图-3期 十、分布式解决方案
- 并查集(UnionFind)算法
- 工程师笔记 | 嵌入式工程师常用软件
- 如何简单抓取拼多多买家订单列表
- 二端口输入阻抗和输出阻抗
- 树莓派——TSL2561获取光强数值(C语言)
- 沅湘流不尽,屈子怨更深,日暮秋风起,潇潇枫树林。
- python替换文本
- XBee3与XBee S2C混合应用注意事项(石油A11领域)
- 实验6 8255并行接口实验【微机原理】【实验】
- 精讲CS231N斯坦福计算机视觉公开课笔记