【问题标题】:Preview blade within another blade from different directory在不同目录的另一个刀片中预览刀片
【发布时间】:2020-08-02 00:43:53
【问题描述】:

我有一个 laravel 应用程序,它为客户和管理员提供了单独的资源。在应用程序内部,在管理方面,我有用于控制前(客户)页面上某些组件的可见性的复选框。现在,除了可见性之外,我还有一些额外的参数要显示。因此,为了立即验证更改,我想在admin.blade.php 中预览(不包括)front.blade.php

我现在唯一的想法是使用<iframe>,但我希望找到一种叫做“laravel 方式”的东西。

我的项目结构:

resources
|-- admin
|    |-- views
|        |-- layouts
|            |-- website
|               `-- front.blade.php
|
|-- front
|    |-- views
|        |-- layouts
|            |-- website
|               `-- admin.blade.php

admin.blade.php

@section('section','Website')
@section('title','Home')
@extends('layouts.main')
@section('style')
    <link href="{{ admin_asset('assets/admin/css/main.css') }}" rel="stylesheet" type="text/css" />
@endsection

@section('content')
    <div class="contentbar">
        <div class="row">
            <div class="col-6">
                <div class="card">
                    <div class="card-header">Header</div>

                    <div class="card-body">
                        @include('website.front') <--- include doesn't work. It just brakes the whole view
                    </div>

                    <div class="card-footer">Footer</div>
                </div>
            </div>
        </div>
    </div>
@endsection
@section('script')
    <script src="{{ admin_asset('assets/admin/js/main.min.js') }}"></script>
@endsection

config/view.php

'paths' => [
        resource_path('front/views'),
        resource_path('admin/views'),
    ],

【问题讨论】:

  • 不是真正的“laravel 方式”,但如果你已经使用例如构建了某种 MVVM 结构。 React 或 Vue 你可以只轮询服务器或使用broadcasting 来确定模型何时更改并加载更改的模型
  • @apokryfos 即使这样做了,我仍然需要在admin.blade.php 内显示整个视图front.blade.php 作为组件,不是吗?
  • 不是必需品。如果您的数据结构正确,那么您可以使用 JavaScript 更新浏览器中显示的内容,这是视图库可以帮助您实现的目标
  • 哦,对不起!我忘了删除“不是吗?”部分。我真的需要在admin 中显示front :)
  • 您当前的代码将在管理中显示在前面,但是我的意思是每当您需要更新前面时,请使用 JavaScript 而不是整页或 iframe 重新加载

标签: laravel laravel-blade


【解决方案1】:

我不知道你为什么要更改默认的resource\views 路径并将所有有组织的视图文件夹包含在其中:

    resources
|-- views
|    |-- admin
|        |-- layouts
|            |-- website
|               `-- front.blade.php
|
|    |-- front
|        |-- layouts
|            |-- website
|               `-- admin.blade.php

但如果你想保持你的结构,那么你必须进行这些更改才能使其正常工作:

config/view.php

'paths' => [
    resource_path('views'),
],

在你的刀片中,你可以执行以下操作:

@include(resource_path('admin\views\layouts\website\front.blade.php'))

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 1970-01-01
    • 1970-01-01
    • 2016-03-18
    • 2023-04-02
    • 2022-11-02
    • 2019-01-31
    • 2019-09-23
    • 1970-01-01
    相关资源
    最近更新 更多