我想在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)
答案 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>