手把手教你跑Larave框架实战笔记系列之二

系列之一为童鞋们搭好了舞台,今天正式登台跑框架了……


从“路由”开始,玩一把“Hellow world!”


Route::get(‘/’, function () {


//return view(‘welcome’);


return ‘Hellow world!’;


});


laravel 的每一个路由是需要手动定义的,默认欢迎页面(参数)


是 resources/views 目录下的文件名welcome.blade.php去掉 blade.php后缀,对应的路由


url 是 http://www.rk.com/


依此类推,把根目录“/”换成子目录“tests”模拟欢迎页面新定义一个路由:


Route::get(‘tests’, function () {


return view(‘logo’);


});


调用页面(参数)


是 resources/views 目录下的文件名logo.blade.php去掉 blade.php后缀


多多找一下路由(R)与(V)示例文件模仿书写格式,依此类推,只要格式相互对应起来就可以发生关联,调用视图


url 就应该是 http://www.rk.com/tests


就是这样子,把MVC中的路由和视图(V)关联起来了,万里长征开始了第一步,以后编程的日子里还会随时这样玩……


以上例子说明了路由可以分发请求,这就好比家里的路由器可以分发多路请求,满足手机、电视……可以有线连接,也可以wifi

路由中还可以引入 html 页面,可以在 route/web.php 中搞定一切。

但是如果把业务逻辑都写入到路由中,那路由就变成了原生开发“搭积木”,web.php页面代码庞大难以维护。

接下来控制器就登台表演了……

把业务逻辑写在控制器中,路由只负责转发请求到指定的控制器即可。


先前,我们已经在PhpStorm中安装了昵称为artisan 的 laravel 命令行接口,也就是根目录下的 artisan 文件,用法是输入命令:


Php artisan

意思就是使用 php 的命令行模式运行 artisan.php 文件,php命令行下是可以不需要文件后缀就能识别的,所以根目录下的 artisan 文件并没有带上 .php


Laravel构架之所以被赞誉为“为Web艺术家而生”,其优雅、艺术、现代主要就是表现在“用少量的代码来干很多漂亮活……”


php artisan.php 命令行主要有两个作用:

第一是生成文件,

第二是执行任务。

现在用它生成控制器(C)文件:


〖法一〗如果不带任何参数用它来生成普通控制器模板的话,输入命令:


Php artisan make:controller ArticleController

见证奇迹的时候又要到来了……

结果是生成了一个 app/Http/Controllers/ArticleController.php 文件;


namespace App\Http\Controllers;


use Illuminate\Http\Request;


class ArticleController extends Controller


{


//


}


不但自动创建了文件,而且还定义好了命名空间,继承好了父级控制器,在这个模板上直接写管理MySQL的增、删、改、查的方法就可以了;


〖法二〗不想一来就自定义语句或方法,想用artisan先生成通用方法代码,再根据需要少量修改代码,也就是说用有点高逼格的方式来干写代码苦力活,那么只需加个–resource选项参数:


Php artisan make:controller ArticleController--resource

不但增、删、改、查的方法都定义好了,连注释都给写好了。这其实是按 RESTful 规范生成的格式,除了 GET POST 它还包含了一大堆请求方式:

PUT 、 PATCH 、 DELETE 、HEAD 、OPTIONS

也就是说 Route:: 后面还可以跟上面这些方法。


视图如何用?除了在路由中直接调用外,就是可以在程序中用函数来调用:例如调用视图admin/index.blade.php就在程序中用这个方法


public function index() {


return view(‘admin/index’);


}


就行了,视图使用容易理解。那么,控制器如何用?当然是放在路由中直接替代闭包函数来使用。因为路由(R)除了请求调用视图(V)外,更多的是请求来干太多的事,比方说处理数据模型(M)等等,如果把干这些活的代码都放这个闭包函数中是臃肿且难以维护的,所以才引入控制器这个中间件。很显然,控制器就是来替代路由中这第二个参数的闭包函数的。路由(R)-控制器(C)-视图(V)就这样轻松关联起来了,三者玩起来思路也很清晰,不难理解。

路由(R)-控制器(C)用起来也非常简单,直接写控制器名在路由(R)闭包函数的这个位置即可,然后用 @ 符号分割控制器和控制器的方法(可以是形参或闭包函数),例如:


Route::get(‘article/index’, ‘ArticleController@index’)


Route::post(‘article/store’, ‘ArticleController@store’)


当控制器(C)用处理数据模型时,就变成了:路由(R)-控制器(C)-数据模型(M)-视图(V)也关联起来了,四者不是同时一起用,就可能有多种排列组合,处理多种事务,响应多种请求。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容