[Laravel5.1]学习笔记(二)–建立第一个Laravel页面

之前按照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

之后访问http://localhost/home/test/就可以出现预定于页面的内容了:

发表评论

电子邮件地址不会被公开。 必填项已用*标注


*