之前按照laravel 5.1搭建了开发环境,现在开始建立第一个页面。
(一)创建controller
在/app/Http/Controllers下建立第一个Controller,这里我命名为HomeController.php,内容如下:
namespace App\Http\Controllers; use App\Http\Controllers\Controller; class HomeController extends Controller { public function getIndex() { echo "hello laravel"; } public function getTest() { return view('test', ['name' => 'MrCat']); } }
(二)配置路由
在/app/Http下修改routes.php文件,按照laravel的开发文档,routes支持支持的功能非常强大,但是我还是喜欢MVC的模式,将逻辑放在Controller层
Route::controller('home', 'HomeController');
(三)添加view
view放在/resources/views下,默认采用的是blade模板,熟悉smarty的同学肯定比较容易上手,这里就解析是@yield和@section:
模板用 @yield 和 @section 分别定义了一个区块,然后在子模板中去定义内容,由于 @yield 不能被扩展,所以即使加上了 @parent 也不起作用,输出的内容只有“新模板的内容”。而 @section 定义的部分,由于使用了 @parent 关键字,父模板中的内容会被保留,然后再扩展后添加的内容进去,输出的内容会是 “默认的内容 扩展的内容”。实例如下:
首先建立main.blade.php
<!DOCTYPE html> <html> <head> </head> <body> <h1>My Test Meau</h1> @yield('title') @section('content') <p>this is section</p> @show </body> </html>
之后建立test.blade.php, 继承main
@extends('main') @section('title') <p>this is new title</p> @stop @section('content') @parent <p>this is new content</p> <p>this is my name {{$name}}</p> @stop