首页 > 开发 > PHP > 正文

Laravel 4 初级教程之视图、命名空间、路由

2024-05-04 22:18:10
字体:
来源:转载
供稿:网友

1. 视图分离与嵌套

在 learnlaravel 文件夹下运行命令:

php artisan generate:view admin._layouts.default

这时候generator插件帮我们创建了app/views/admin/_layouts/default.blade.php 文件,将内容修改为:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Learn Laravel 4</title>
  @include('admin._partials.assets')
</head>
<body>
<div class="container">
  <div class="navbar navbar-inverse navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a class="brand" href="{{ URL::route('admin.pages.index') }}">Learn Laravel 4</a>
      @include('admin._partials.navigation')
    </div>
  </div>
</div>
<hr>
  @yield('main')
</div>
</body>
</html>

这就是视图文件,MVC中的V。视图需要仔细讲一下。

views文件夹为视图文件夹,视图文件夹可以嵌套,就像我上面一样创建了admin/_layout嵌套文件夹,在里面创建了一个叫default.blade.php的文件,那么以后我们在Laravel内任何地方要用到这个视图的时候,他就叫admin._layouts.default。

我们看到,上面代码的第七行是“@include('admin._partials.assets')”,根据上面我们刚刚了解的知识,这表示载入了另外一个文件。blade是Laravel的模板引擎,此处的 @include 表示直接把那个文件的所有代码带入进来放到这里,变成当前视图的一部分。

注意看第25行“@yield('main')”,这表示什么呢?这个有点复杂,我们稍后再讲。

2. 权限验证

Laravel支持标准HTTP认证,但是在此处我们需要构建blog系统,所以我们将编写完善的管理员登陆系统,从页面登录。

用命令行创建app/views/admin/auth/login.blade.php文件,代码如下:

@extends('admin._layouts.default')
@section('main')
  <div id="login" class="login">
    {{ Form::open() }}
      @if ($errors->has('login'))
        <div class="alert alert-error">{{ $errors->first('login', ':message') }}</div>
      @endif
      <div class="control-group">
        {{ Form::label('email', 'Email') }}
        <div class="controls">
          {{ Form::text('email') }}
        </div>
      </div>
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表