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');
}
}
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
Next, add your new provider to the providers array of config/app.php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
Finally, add two class aliases to the aliases array of config/app.php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
Consider reading a Documentation.