在Laravel 5中加载视图时出错

时间:2016-02-12 13:16:39

标签: php laravel laravel-5

我正在尝试加载我的创建视图

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

但是我遇到了这个错误,

85b8c1799c6cd6f2475229a36bc0e59a39b0e295.php第23行中的FatalErrorException:未找到“HTML”类

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>

上面的视图位于名为my的iwn目录中。我在WAMP服务器中使用Laravel 5.2。

3 个答案:

答案 0 :(得分:3)

我猜你在你的视野中使用的是“经典”(已存在很长时间)Formfaçade。

嗯,它已经不再存在于Laravel&gt; 5.1(IIRC)。如果您想要相同的功能,可以参考您可以在这里找到的LaravelCollective包:

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

您可以像使用任何其他软件包一样使用Composer轻松安装它。同样适用于line = f.readline().replace('\n','') 类,请注意。

答案 1 :(得分:1)

您需要创建名为“HTML”的类。

您应该在Controllers文件夹中创建此类。

示例:

class HomeController extends Controller
{
public function index()
{
    return view('home');
}
}

答案 2 :(得分:1)

  1. 将这些行添加到composer.json文件中:

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

    run php composer update(或Windows上的php.exe

    或者只是从终端运行:

    php.exe composer require laravelcollective/html
    
  2. 接下来,将新的提供程序添加到config / app.php的提供程序数组中:

    'providers' => [
        // ...
        Collective\Html\HtmlServiceProvider::class,
        // ...
    ],
    
  3. 最后,将两个类别名添加到config / app.php的别名数组中:

    'aliases' => [
        // ...
        'Form' => Collective\Html\FormFacade::class,
        'Html' => Collective\Html\HtmlFacade::class,
        // ...
    ],
    
  4. 考虑阅读Documentation