Form

剛開始學習較複雜的測試時,即便通過測試,但實際頁面的實作也還是必要的。

  • 真正加入表單頁面。
  • Laravel 5 把 HTML 和 Form 元件拿掉了,要自己加回來。

加入 illuminate/http 套件。

$ composer require illuminate/html

config/app.php 加入:

    'providers' => [

        // ...

        // 加入此行,載入 illuminate/html 的 Service Provider
        'Illuminate\Html\HtmlServiceProvider',

        /*
         * Application Service Providers...
         */
        // ...
    ],

    // ...

    'aliases' => [
        // ...

        // 加入以下兩行,使用 Form 的 facade 介面
        'Form'      => 'Illuminate\Html\FormFacade',
        'HTML'      => 'Illuminate\Html\HtmlFacade',

    ],

建立表單,即 resources/views/articles/create.php

  • {!! !!} 輸出 raw data
  • Form::open 會自動加入 _token 的隱藏欄位
  • $error 是一個 ViewErrorBag 物件,用來放置 Session 保留的錯誤訊息
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Create Article</title>
</head>
<body>

{!! Form::open(['route' => 'articles.index']) !!}
<p>
    Title: {!! Form::text('title') !!}
</p>
<p>
    Body: {!! Form::textarea('body') !!}
</p>
<p>
    {!! Form::submit('Create Article') !!}
</p>
{!! Form::close() !!}

@if ($errors->any())
<ul>
    @foreach ($errors->all() as $error)
    <li>{{ $error }}</li>
    @endforeach
</ul>
@endif

</body>
</html>

ArticleController 加入 create 方法:

    /**
     * Show the form for creating a new resource.
     *
     * @return Response
     */
    public function create()
    {
        return view('articles.create');
    }

實際用瀏覽器測試以下網址:

http://localhost/posts/create

results matching ""

    No results matching ""