将 lumen 5.2 与 blade 模板引擎一起使用?

using lumen 5.2 with blade template engine?

我按照 official documentation of laravel 创建模板 blade.I 我正在尝试制作我的第一个模板,但没有用。

1)存储在resources/views/default.blade.php --->

<html>
<head>
    @include('includes.head')
</head>
<body>
<div class="container">

    @include('includes.header')


    <div id="main" class="row">

            @yield('content')

    </div>

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

2)存储在resources/views/home.blade.php -->

@extends('layouts.default')
@section('content')
    I am the Home Page!
@endsection

3)存储在boostrap/app.php -->

$app->get('/', function (){
    return view('home');
});

4) localhost:8000/return这个错误-->

糟糕,好像出了点问题。 2/2 FileViewFinder.php 第 137 行中的 ErrorException:未找到视图 [layouts.default]。 (查看:/home/vagrant/lumen/resources/views/home.blade.php)

in FileViewFinder.php line 137
at CompilerEngine->handleViewException(object(InvalidArgumentException), '1') in PhpEngine.php line 44
at PhpEngine->evaluatePath('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php', array('__env' => object(Factory), 'app' => object(Application))) in CompilerEngine.php line 59
at CompilerEngine->get('/home/vagrant/lumen/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application))) in View.php line 149
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 53
at Response->setContent(object(View)) in Response.php line 199
at Response->__construct(object(View)) in RoutesRequests.php line 643
at Application->prepareResponse(object(View)) in RoutesRequests.php line 505
at Application->callActionOnArrayBasedRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 479
at Application->handleFoundRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 376
at Application->Laravel\Lumen\Concerns\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in CorsMiddleware.php line 6
at CorsMiddleware->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CorsMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in RoutesRequests.php line 626
at Application->sendThroughPipeline(array('App\Http\Middleware\CorsMiddleware'), object(Closure)) in RoutesRequests.php line 382
at Application->dispatch(null) in RoutesRequests.php line 327
at Application->run() in index.php line 28

1/2 FileViewFinder.php 行 137 中的 InvalidArgumentException:未找到视图 [layouts.default]。

in FileViewFinder.php line 137
at FileViewFinder->findInPaths('layouts.default', array('/home/vagrant/lumen/resources/views')) in FileViewFinder.php line 79
at FileViewFinder->find('layouts.default') in Factory.php line 165
at Factory->make('layouts.default', array('obLevel' => '1', '__env' => object(Factory), 'app' => object(Application))) in 96985f6d91158d600b1d1b64b5a3060d84415fda.php line 4
at include('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php') in PhpEngine.php line 42
at PhpEngine->evaluatePath('/home/vagrant/lumen/storage/framework/views/96985f6d91158d600b1d1b64b5a3060d84415fda.php', array('__env' => object(Factory), 'app' => object(Application))) in CompilerEngine.php line 59
at CompilerEngine->get('/home/vagrant/lumen/resources/views/home.blade.php', array('__env' => object(Factory), 'app' => object(Application))) in View.php line 149
at View->getContents() in View.php line 120
at View->renderContents() in View.php line 85
at View->render() in Response.php line 53
at Response->setContent(object(View)) in Response.php line 199
at Response->__construct(object(View)) in RoutesRequests.php line 643
at Application->prepareResponse(object(View)) in RoutesRequests.php line 505
at Application->callActionOnArrayBasedRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 479
at Application->handleFoundRoute(array(true, array(object(Closure)), array())) in RoutesRequests.php line 376
at Application->Laravel\Lumen\Concerns\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 52
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request)) in CorsMiddleware.php line 6
at CorsMiddleware->handle(object(Request), object(Closure))
at call_user_func_array(array(object(CorsMiddleware), 'handle'), array(object(Request), object(Closure))) in Pipeline.php line 136
at Pipeline->Illuminate\Pipeline\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 32
at Pipeline->Laravel\Lumen\Routing\{closure}(object(Request))
at call_user_func(object(Closure), object(Request)) in Pipeline.php line 102
at Pipeline->then(object(Closure)) in RoutesRequests.php line 626
at Application->sendThroughPipeline(array('App\Http\Middleware\CorsMiddleware'), object(Closure)) in RoutesRequests.php line 382
at Application->dispatch(null) in RoutesRequests.php line 327
at Application->run() in index.php line 28

函数@extends('name') 在目录"resources/views"中查找文件"name.blade.php"或"name.php" 如果你使用@extends('layouts.default'),这意味着,它在目录"resources/views/layouts"(视图中的子文件夹布局)

中找到文件文件"default.blade.php"或"default.php"

但是你的 "deafault.blade.php" 在 "resources/views" 所以它应该 @extends('default')

你说的URL是针对Laravel的,不是Lumen,Lumen是轻量级的Laravel,是针对API层和后端作业处理的。我建议改为 Laravel。

选择的答案有误,Lumen默认安装了blade。 您正在使用的 return 将无法使用。

您的路线需要看起来像

$app->get('/', function () use ($app) {
  return $app->make('view')->make('index');
});

所选答案 () 不正确。

@joeldg 和@autista_z 都是正确的。

从 Lumen 5.4 开始,Blade 视图仍然可用和可用,尽管它们不再被记录在案。

完整示例:

// In routes/web.php: 
$app->get('/', function () use ($app) {
  return $app->make('view')->make('home');
});

// In resources/views/default.blade.php:
<html>
  <head>...</head>
  <body>
    <div id="whatever">
      @yield('content')
    </div>
  </body>
</html>

// In resources/views/home.blade.php:
@extends('default')
@section('content')
  <p>I am the Home Page!</p>
@endsection