我正在尝试为用户创建一个表单来更新帐户信息。我有一个包构建,以便用户可以创建自定义列表来选择要在其配置文件上显示的资格。我为自定义列表创建了一个局部视图,它循环遍历该实体类型的所有列表,以获取要在表单上显示的列表。
我遇到的问题是@include()仅在我将其放入@section('内容)区域时才有效,但是包含刀片的其余内容不是只显示了所包含的内容。如果我把include放在它自己的部分,它就不显示。
将包含在与我的其余代码相同的部分中,如下所示:
@extends($layout)
@section('content')
<form>
<label>Name</Label>
<input type="text" name="first_name">
<label>Last Name</Label>
<input type="text" name="last_name">
<label>Email</Label>
<input type="text" name="email_address">
</form>
@include('Package::path.to.partial')
@endsection
结果如下:
<html>
<body>
<div class="container-fluid>
<Partial Package Code>
</div>
</body>
</html>
如果我在其中包含了自己的内容,如下所示,那么只有&#34;内容&#34;部分显示:
@extends($layout)
@section('content)
<form>
<label>Name</Label>
<input type="text" name="first_name">
<label>Last Name</Label>
<input type="text" name="last_name">
<label>Email</Label>
<input type="text" name="email_address">
</form>
@endsection
@section('custom_list')
@include('Package::path.to.partial')
@endsection
结果如下:
<html>
<body>
<div class="container-fluid">
<form>
<label>Name</Label>
<input type="text" name="first_name">
<label>Last Name</Label>
<input type="text" name="last_name">
<label>Email</Label>
<input type="text" name="email_address">
</form>
</div>
</body>
</html>
答案 0 :(得分:0)
如果我在其自己的部分中有包含,如下所示,则仅显示“内容”部分中的内容
这是可以预料的。您正在重新定义部分中的content
部分,因此它将覆盖该部分的内容。相反,部分应该是:部分内容。因此,只需将您想要的任何标记放在部分Blade模板中,就像使用vanilla PHP一样。
答案 1 :(得分:0)
该软件包的部分视图定义了自己的@section('content')
。
在第一种情况下,软件包的content
部分会覆盖您的部分。使用这样一个通用名称的包非常糟糕。
在第二种情况下,它不会显示,因为您正在定义custom_list
部分,但您没有在任何地方放置其内容。您需要将@yield('custom_list')
添加到布局模板中。
不幸的是,由于content
naming conflict still exists。
您最好的选择是将您的部分重命名为其他内容。
@section('app')
<... your fields ...>
@include('Package::path.to.partial')
@yield('content')
@stop
更新布局模板以生成新的部分名称
@yield('app')
更好的是,fork该包,将其部分名称更改为[package_name]:content
并提交拉取请求。