我使用TwigBridge因为我更喜欢使用Twig而不是刀片。问题是扩展基础模板会返回错误。
加载../resources/views/main/index.twig:模板时出错 “../layouts/base.index.twig”未定义(TwigBridge \ Twig \ Loader: 查看[../layouts/base.index]未找到。)in “../资源/视图/主/ index.twig”
我尝试过像这样扩展模板,但它无效:
{%extends'../layouts/base.index.twig'%}
{%extends'../layouts/base.index'%}
这是资源/视图结构:
以下是视图文件的内容: base.index.twig
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel</title>
<!-- Fonts -->
<link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="{{ asset('css/bundle.css') }}">
</head>
<body>
{% block content %}
{% endblock %}
<script src="{{ asset('js/bundle.js') }}"></script>
</body>
</html>
这是index.twig
{% extends '../layouts/base.index.twig' %}
{% block content %}
<div class="page-header text-center my-5"> <h1>Laravel Todo App</h1> </div>
<div class="float-right pb-3 pr-3">
<button class="btn btn-primary"> Add todo </button>
</div>
<table class="table table-hover">
<thead>
<tr>
<th scope="col">#</th>
<th scope="col">Todo</th>
<th scope="col">Description</th>
<th scope="col">Deadline</th>
<th scope="col">Status</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
{% endblock %}
答案 0 :(得分:0)
TwigBridge将点表示法解释为目录路径,并查找相对于views目录的模板。我不确定是否有办法在你的文件名中使用额外的句号,但是建议快速解决这个问题就是删除它,这样TwigBridge就不会感到困惑。
您也不需要../目录遍历 - 您只需要指定相对于views目录的路径。
所以我建议改变它:
{% extends layouts.base-index %}