gpt4 book ai didi

laravel Blade 包含具有相对路径的文件

转载 作者:行者123 更新时间:2023-12-02 21:30:18 34 4
gpt4 key购买 nike

在 Laravel Blade 系统中,当我们想要包含部分 Blade 文件时,我们必须每次都为每个文件写入完整路径。当我们重命名一个文件夹时,我们必须检查其中每个文件的@include。有时包含相对路径确实很容易。有什么办法可以做到这一点吗?

例如,我们在此路径中有一个 Blade 文件:

resources/views/desktop/modules/home/home.blade.php

我需要包含一个靠近该文件的 Blade 文件:

@include('desktop.modules.home.slide')

使用相对路径,它会是这样的:

@include('.slide')

有什么办法可以做到这一点吗?

最佳答案

如果有人仍然对当前 View 文件的相对路径感兴趣,请将此代码放入 AppServiceProvider.php 或您希望的任何提供程序的 boot 方法中

    Blade::directive('relativeInclude', function ($args) {
$args = Blade::stripParentheses($args);

$viewBasePath = Blade::getPath();
foreach ($this->app['config']['view.paths'] as $path) {
if (substr($viewBasePath,0,strlen($path)) === $path) {
$viewBasePath = substr($viewBasePath,strlen($path));
break;
}
}

$viewBasePath = dirname(trim($viewBasePath,'\/'));
$args = substr_replace($args, $viewBasePath.'.', 1, 0);
return "<?php echo \$__env->make({$args}, \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>";
});

然后使用

    @relativeInclude('partials.content', $data) 

包含来自名为partials的同级目录的content.blade.php

祝大家好运

关于laravel Blade 包含具有相对路径的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49894221/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com