Include/call 外部 class 在 laravel
Include/call external class in laravel
尽管我在 Whosebug 中看到了多个类似的问题,但我仍然无法让我的自定义 php class 在 laravel 中工作。我做了以下事情:
laravel -> 应用程序 -> 库 -> DateFunction.php 作为我的文件路径
实际DateFunction.php包含以下代码
<?php
namespace App\Libraries;
class DateFunction
{
public $timeWorked;
public function getRealHours($time) {
if ($time / 60 < 1) {
$this->timeWorked = $time . "m";
} else {
$hours = $time / 60;
$minutes = $time % 60;
$this->timeWorked = $hours . "h" . $minutes . "m";
}
return $this->timeWorked;
}
}
在我的控制器中我使用过
use App\Libraries\DateFunction;
但是当我使用
时在我的视图中
@foreach ($labourentries as $labour)
<tr>
<td>{{ $labour->labourtype_id }}</td>
<td>{{ getRealHours($labour->minutes_worked) }}</td>
</tr>
@endforeach
它仍然给我错误:调用未定义的函数 getRealHours()
如有任何帮助,我们将不胜感激。干杯
当你写use App\Libraries\DateFunction
时,这个controller中只有可用的DateFunctionclass,你应该按如下方式使用它:
Class AlohaController
{
public function something()
{
$InstanceClass = new DateFunction;
$realHour = $InstanceClass->getRealHours(48);
}
}
如果你想全局使用 getRealHours() 你不需要 class.
如果你想创建一个函数助手,你必须执行以下操作:
编辑文件composer.json
放置你的帮助文件的路径
运行 composer dumpautoload
生成 bootstrap 文件
Helpers 文件应该如下所示:
function getRealHours($time) {
$timeWorked = 0;
if ($time / 60 < 1) {
$timeWorked = $time . "m";
} else {
$hours = $time / 60;
$minutes = $time % 60;
$timeWorked = $hours . "h" . $minutes . "m";
}
return $timeWorked;
}
另一种可能的解决方案
在您的控制器中创建 DateFunction 的一个实例 class 并将其发送到您的视图。
您的控制器应如下所示:
$helpers = new DateFunction;
return view('path.to.view', ['helpers' => $helpers]);
在您看来,您可以这样使用它:
<td>{{ $helpers->getRealHours($labour->minutes_worked) }}</td>
尽管我在 Whosebug 中看到了多个类似的问题,但我仍然无法让我的自定义 php class 在 laravel 中工作。我做了以下事情:
laravel -> 应用程序 -> 库 -> DateFunction.php 作为我的文件路径
实际DateFunction.php包含以下代码
<?php
namespace App\Libraries;
class DateFunction
{
public $timeWorked;
public function getRealHours($time) {
if ($time / 60 < 1) {
$this->timeWorked = $time . "m";
} else {
$hours = $time / 60;
$minutes = $time % 60;
$this->timeWorked = $hours . "h" . $minutes . "m";
}
return $this->timeWorked;
}
}
在我的控制器中我使用过
use App\Libraries\DateFunction;
但是当我使用
时在我的视图中 @foreach ($labourentries as $labour)
<tr>
<td>{{ $labour->labourtype_id }}</td>
<td>{{ getRealHours($labour->minutes_worked) }}</td>
</tr>
@endforeach
它仍然给我错误:调用未定义的函数 getRealHours()
如有任何帮助,我们将不胜感激。干杯
当你写use App\Libraries\DateFunction
时,这个controller中只有可用的DateFunctionclass,你应该按如下方式使用它:
Class AlohaController
{
public function something()
{
$InstanceClass = new DateFunction;
$realHour = $InstanceClass->getRealHours(48);
}
}
如果你想全局使用 getRealHours() 你不需要 class.
如果你想创建一个函数助手,你必须执行以下操作:
编辑文件
composer.json
放置你的帮助文件的路径运行
composer dumpautoload
生成 bootstrap 文件Helpers 文件应该如下所示:
function getRealHours($time) { $timeWorked = 0; if ($time / 60 < 1) { $timeWorked = $time . "m"; } else { $hours = $time / 60; $minutes = $time % 60; $timeWorked = $hours . "h" . $minutes . "m"; } return $timeWorked; }
另一种可能的解决方案
在您的控制器中创建 DateFunction 的一个实例 class 并将其发送到您的视图。
您的控制器应如下所示:
$helpers = new DateFunction;
return view('path.to.view', ['helpers' => $helpers]);
在您看来,您可以这样使用它:
<td>{{ $helpers->getRealHours($labour->minutes_worked) }}</td>