在Laravel 5中加载视图时出错

I'm trying to load my create view,

public function create()
    {
        //
        return View('my.create');
    }

but I'm having this error,

FatalErrorException in 85b8c1799c6cd6f2475229a36bc0e59a39b0e295.php line 23: Class 'HTML' not found


create.blade.php

<!DOCTYPE html>
<html>
<head>
    <title>Look! I'm CRUDding</title>
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">

<nav class="navbar navbar-inverse">
    <div class="navbar-header">
        <a class="navbar-brand" href="{{ URL::to('nerds') }}">Nerd Alert</a>
    </div>
    <ul class="nav navbar-nav">
        <li><a href="{{ URL::to('nerds') }}">View All Nerds</a></li>
        <li><a href="{{ URL::to('nerds/create') }}">Create a Nerd</a>
    </ul>
</nav>

<h1>Create a Nerd</h1>

<!-- if there are creation errors, they will show here -->
{{ HTML::ul($errors->all()) }}

{{ Form::open(array('url' => 'nerds')) }}

    <div class="form-group">
        {{ Form::label('name', 'Name') }}
        {{ Form::text('name', Input::old('name'), array('class' => 'form-control')) }}
    </div>

    <div class="form-group">
        {{ Form::label('email', 'Email') }}
        {{ Form::email('email', Input::old('email'), array('class' => 'form-control')) }}
    </div>

    <div class="form-group">
        {{ Form::label('nerd_level', 'Nerd Level') }}
        {{ Form::select('nerd_level', array('0' => 'Select a Level', '1' => 'Sees Sunlight', '2' => 'Foosball Fanatic', '3' => 'Basement Dweller'), Input::old('nerd_level'), array('class' => 'form-control')) }}
    </div>

    {{ Form::submit('Create the Nerd!', array('class' => 'btn btn-primary')) }}

{{ Form::close() }}

</div>
</body>
</html>

the above view is located in its iwn directory called my. I'm using Laravel 5.2 in WAMP server.

I guess you're using the "classic" (has been there for long) HTML façade in your view.

Well, it's no longer there in Laravel > 5.1 (IIRC). If you want the same functionalities, you can refer to the LaravelCollective package you can find here:

https://laravelcollective.com/docs/5.2/html

You can install it easily with Composer, as any other package. The same applies for the Form class, mind it.

You need to create your class named 'HTML'.

You should create this class in your Controllers folder.

Example:

class HomeController extends Controller
{
public function index()
{
    return view('home');
}
}
  1. Add these lines to your composer.json file:

    "require": {
        "laravelcollective/html": "5.2.*"
    }
    

    and run php composer update (or php.exe on Windows)

    OR simply run from terminal:

    php.exe composer require laravelcollective/html
    
  2. Next, add your new provider to the providers array of config/app.php:

    'providers' => [
        // ...
        Collective\Html\HtmlServiceProvider::class,
        // ...
    ],
    
  3. Finally, add two class aliases to the aliases array of config/app.php:

    'aliases' => [
        // ...
        'Form' => Collective\Html\FormFacade::class,
        'Html' => Collective\Html\HtmlFacade::class,
        // ...
    ],
    
  4. Consider reading a Documentation.