Laravel入门:MVC框架
2016-04-07 00:00
357 查看
摘要: Laravel入门,MVC框架
本文基于Laravel 4.2编写。
路由Hello World
在app/routes.php里面添加下面代码,然后在浏览器里访问http://<laravel host prefix>/helloworld可以见到结果。
视图(View)
理论上可以把所有代码都写在app/routes.php里面,但是这会令代码难以维护。于是,我们可以把具体的页面内容搬到视图里,让路由文件简短一些。
app/routes.php
控制器(Controller)
我们写的是动态网页,页面里有变量,变量通过Controller传入View。
app/routes.php(这次我们的路由要先指向Controller,然后再由Controller返回View内容)
Route::get('/helloworld', 'HelloworldController@say');
app/controllers/HelloworldController.php
app/views/hello/world.php(这次我们放在一个子目录里,避免views目录文件太多)
页面将显示“hello kitty”
模型(Model)
随着业务逻辑的复杂,Controller文件会变长不好维护,那么我们可以把和数据库查询相关的逻辑分到模型层里,甚至可以安排一个擅长数据库表设计和写SQL的人专门负责这一层。
app/routes.php
app/models/Contact.php
app/views/hello/world.blade.php(由于需要使用循环等超越HTML语法的功能,我们需要使用blade模板语言,文件名里需要添加blade部分)
页面将显示“kitty's number is 800888, dingdong's number is 900999,”
模板语言更多语法可参考:https://laravel.com/docs/4.2/templates
至此,MVC(Model-View-Controller)的框架进化完成。
本文基于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)的框架进化完成。
相关文章推荐
- 分享微信开发Html5轻游戏中的几个坑
- workerman结合laravel开发在线聊天应用的示例代码
- 简单对比分析Ruby on Rails 和 Laravel
- laravel安装zend opcache加速器教程
- 使用 PHPStorm 开发 Laravel
- Zend的MVC机制使用分析(二)
- ASP.NET MVC 4 捆绑和缩小实例介绍
- ASP.NET Mvc开发之查询数据
- ASP.NET MVC中将控制器分离到类库的实现
- asp.net实现在非MVC中使用Razor模板引擎的方法
- ASP.NET MVC中的AJAX应用
- 为ASP.NET MVC及WebApi添加路由优先级
- ASP.NET MVC中图表控件的使用方法
- 剖析ASP.NET MVC的DependencyResolver组件
- ASP.NET MVC的四种验证编程方式
- ASP.NET MVC @Helper辅助方法和@functons自定义函数的使用方法
- 仅30行代码实现Javascript中的MVC
- asp.net MVC利用ActionFilterAttribute过滤关键字的方法
- ASP.NET MVC使用ActionFilterAttribute实现权限限制的方法(附demo源码下载)
- ASP.NET MVC 3仿Server.Transfer效果的实现方法