如何在laravel blade.php文件中使用外部PHP文件?

时间:2019-09-06 15:04:58

标签: php laravel

我想在Laravel中包含外部PHP文件(pdate.php),并在blade.php文件中使用它。我该怎么办?

导入到app\date\pdate.php文件夹中的PHP文件,并通过在控制器中使用app_path()函数,我尝试将其发送到blade.php中,但是出现错误。

public function index(){
  include_once(app_path() . '/date/pdate.php');
  return view('/cashWithdraw/create');
}

当我在blade.php中使用该文件的一个变量时,会出现此错误。

  

未定义变量:今天(查看:E:\ laravelProject \ deal \ resources \ views \ cashWithdraw \ create.blade.php)

4 个答案:

答案 0 :(得分:0)

composer.json文件中,您只需在“自动加载” 部分中添加所需的文件–在名为files的新条目中:

 "autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/date/pdate.php"
    ]
},

运行此命令composer dump-autoload之后,现在您可以全局使用此文件中的任何功能

答案 1 :(得分:0)

使用blade @include()帮助器可以轻松完成此操作。如果您将文件另存为pdate.blade.php文件(例如,在resources/views/date中),则可以按如下所示包含它:

cashWithdraw/create.blade.php内:

@include("date/pdate")

唯一的不足是pdate.blade.php中可用的变量需要定义,但这可以通过多种方式完成:

直接在pdate.blade.php中:

@php $today = \Carbon\Carbon::now(); @endphp

在返回create.blade.php的控制器中:

public function index(){
  $today = \Carbon\Carbon::now();
  return view('cashWithdraw.create')->with(["today" => $today]);
}

@includes中的create.blade.php中:

@include("date/pdate", ["today" => \Carbon\Carbon::now()])

答案 2 :(得分:0)

您没有将任何变量传递到视图中。您将需要将pdate生成的所有变量传递到视图中。

public function index(){
    include_once(app_path() . '/date/pdate.php');

    return view('/cashWithdraw/create', [
        'today' => $today
    ]);
}

刀片中唯一可用的变量是您在其中传递的变量。

答案 3 :(得分:0)

如果您的文件是类,则可以使用服务注入将其注入到视图中,如下所示:

@inject('pdata', 'app\date\pdate')

然后调用任何方法。假设您的课程有一个类似getMyDate的课程:

<div class="anything">
   {{ $pdata->getMyDate() }}
</div>