2757com 1

我们来看两种不同的路由2757com:,付费投稿计划

本文由码农网 –
任琦磊原创翻译,转发请看清文末的转发必要,款待参预大家的付费投稿安插!

【摘要】自从张罗系统ThinkSNS+不应用ThinkPHP框架而接收Laravel框架之后,很五个人都在说技术门槛抬高了,其实您与TS+的间距仅仅只是学习一个新框架而已,所以,咱们前不久以来讲Laravel的入门。

路由和调整器的涉嫌

1. 视图分离与嵌套

那是生龙活虎份面向初读书人的 Laravel 5.1 中创设 Service Provider 的学科。

投机提醒:

路由文件地点在\app\Http\routes.php,大家来看三种不相同的路由。

在 learnlaravel 文件夹下运维命令:

本身在团结过去的博客中提到了自个儿钟爱 Laravel
5.1 的布局,特别是它引进了ServiceProvider,进而使您模块化的创设利用成为了可能。应用的配置经常或然成为老祸患的职分,完全在于你正在选取的框架,但有幸的是,大家正在使用的 Laravel 让这事变得一定轻便。

l正文纯干货,文字和代码居多,且切合零基本功Laravel学习者;

Route::get('/', function () {
    return view('welcome');
});


Route::get('/hi', function () {
    return 'hello world';
});
php artisan generate:view admin._layouts.default

2757com 1

l正文子禽新建三个名称为 blog 的 Laravel 程序,那是四个特简单的博客。

如上均为绑定无名函数的路由,尽管能够再次来到视图,也能够回来字符串,但精气神儿都以一模一样的。

那时候generator插件帮大家创制了app/views/admin/_layouts/default.blade.php
文件,将内容更改为:

由此让大家最早创办叁个用以演示的路由(route)。到 app/Http/routes.php中增多下边这条路由:

l应接随即关切ThinkSNS+的研发动态,有产物难题、优化提出、售前咨询、售后咨询、技艺扶助都能够问问QQ3298713109,手提式无线电话机18108035545(同Wechat)。

Route::get('/blog','BlogController@index');
Route::get('/post/{slug}','BlogController@showPost');
<!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="{{%20URL::route('admin.pages.index')%20}}">Learn Laravel 4</a>
      @include('admin._partials.navigation')
    </div>
  </div>
</div>
<hr>
  @yield('main')
</div>
</body>
</html>
Route::resource('demo', 'DemoController');

正文首要内容:

那二种是绑定调控器的路由,调节器类BlogController下有八个函数,index和showPost,能够调用。

那正是视图像和文字件,MVC中的V。视图要求细致讲一下。

经过行使 Route::resource,我们就拿走了预约义好的 index,show,create,edit,update,store 和 destroy 路由。

·新建 Laravel 程序,怎么样连接数据库;

那么难点来了,毕竟应当接收哪个种类?

views文件夹为视图像和文字件夹,视图文件夹能够嵌套,就疑似自家上边同样创制了admin/_layout嵌套文件夹,在中间创制了二个叫default.blade.php的公文,那么之后大家在Laravel内别的地点要用到这几个视图的时候,他就叫admin._layouts.default。

为了兑现漂亮的对称性,现在咱们得以行使 artisan 命令行工具来为大家制造对应的调整器(controller)。键入如下指令:

·Laravel 程序的骨干文件构造;

您不可能把复杂的事务逻辑都写在三个佚名函数里,所以您要学会新建调控器。

笔者们看来,下边代码的第七行是“@include(‘admin._partials.assets’State of Qatar”,遵照上边我们适逢其会领悟的知识,那象征载入了其余多个文本。blade是Laravel的模板引擎,此处的
@include
表示一直把那几个文件的持有代码带入进来放到这里,变成日前视图的大器晚成有个别。

php artisan make:controller DemoController

·MVC(模型,视图,调节器)和 REST 结构的基本原理;

Route::get('/mvc', 'MyController@hello');  

瞩目看第25行“@yield(‘main’卡塔尔(قطر‎”,那意味什么吧?这些有一点复杂,我们稍后再讲。

让大家开荒成立好的文本,将 index 方法改善为如下内容:

·如何高效生成 Laravel 程序骨架;

生龙活虎.加多新调控器

2. 权力验证

public function index()
{
    return view('demo.index');
}

学习Laravel前提:您必须要是会PHP语言的前后相继技能人士,不然,应先学习PHP语言,再上学laravel框架,最终,能力上手社交系统ThinkSNS+的一回开荒,以下是恐怕应用到的财富:

调整器文件夹地址在Laravel文件夹下\app\Http\Controllers,大家后续选取artisan调节台创制三个新调整器

Laravel协助标准HTTP认证,但是在这里处大家供给创设blog系统,所以大家将编辑康健的总指挥登录系统,从页面签到。

前不久让我们世袭在 app/Resources/views 目录下开创二个名叫 Demo 的公文夹,并在文书夹中创建多少个名叫 index.blade.php 的视图(view)文件,内容如下:

·PHP 5.4 及以上版本

php artisan make:controller MyController

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

@extends('layouts.master')

@section('content')
<h1>Demo Page</h1>
@endsection

·包处理工科具 Composer。Composer指南官方网址:https://getcomposer.org/,
中文网:http://www.phpcomposer.com/

下一场,回到调控器目录,风流倜傥份新的MyController.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>
      <div class="control-group">
        {{ Form::label('password', 'Password') }}
        <div class="controls">
          {{ Form::password('password') }}
        </div>
      </div>
      <div class="form-actions">
        {{ Form::submit('Login', array('class' => 'btn btn-inverse btn-login')) }}
      </div>
    {{ Form::close() }}
  </div>
@stop

本条例子中大家正在调用一个自家早已在 layouts 文件夹中开创了的 master 页面master.blade.php。要是您的 master 用了另八个名字,那么这里你得替换掉。假如您未曾 master 页面,那么就删掉第生龙活虎行 extends 的全体内容,蕴含 @sectioin 证明。

·SQLite3 数据库

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller
{
    //
}

世家应该注意到了前两行:

比如你已经陈设好了您的费用条件并剖析了您的域名,那么当你走访路由yourapplication.com/demo,你应当能够看出内容 德姆o
Page 了。

·PHP 语言官网:http://php.net/

大家改良MyController类,同有时间再创造三个视图。

@extends('admin._layouts.default')@section('main')

好的,那么未来就让大家来创建四个Service Provider。这几个瑟维斯Provider不会做太多极其实用的政工。它只是用来向你出示怎么着搭建它。

一、新建 Laravel 程序

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\Http\Requests;

class MyController extends Controller
{
    public function hello()
    {
        return View('myview');
    }
}

那意味着如何?实际上,今后我们会询问到,在controller中调用view的时候,调用的只是以此login.blade.php文件,第风度翩翩行表示,此视图是admin._layouts.default的子视图,那个时候blade引擎会把那几个视图也载入进来,怎么组装呢?那时候下边那几个@section(‘main’State of Qatar就该出场了,被它包裹的代码将会直接放到admin._layouts.default中的@yield(‘main’卡塔尔国中。section和yield可以自由搭配,只要多个视图之间有调用关系,他们就能够这么用,非常灵活。

让大家在 app 目录下开创三个 Helpers 文件夹。然后在 Helpers 文件夹里,创立叁个 Contracts 文件夹。在 Contracts 文件夹里,成立文件罗克etShipContract.php 并写入上面包车型客车内容:

文中的示范代码应用 $ 表示命令行提醒符,你的提示符只怕改变过,所以会不平等。在 Windows 中,提醒符大概是 c:\source_code>。

意气风发经这么写,就意味着风姿洒脱旦客商访问U奥迪Q5L:laravel/public/mvc,路由就能够提交MyController调节器的hello函数,hello函数重返myview视图,即重回myview.blade.php

写到这里大家莫不有个疑问,为何示例代码里空行那么多?这点正是私有经验了。blade引擎的兼具标签都会在视图编写翻译时用正则管理,引擎自身有叁个主题素材,不能算bug,就是换行符会被管理掉,招致前后行和那风姿罗曼蒂克行都密不可分地挤在共同,在前面二个浏览器中“查看源代码”时,比较不清晰,前后加上空行能够解决那个问题。当然那说倒霉是一个自动的“压缩”天性,不再浓厚座谈。

发表评论

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