即使我在stackoverflow中看到过这样的多个问题,我仍然无法让我的自定义php类在laravel中工作。我做了以下事情:
laravel - > app - >图书馆 - > 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()
非常感谢任何帮助。干杯
答案 0 :(得分:0)
当您编写use App\Libraries\DateFunction
时,此控制器中只有DateFunction类可用,您应该按如下方式使用它:
Class AlohaController
{
public function something()
{
$InstanceClass = new DateFunction;
$realHour = $InstanceClass->getRealHours(48);
}
}
如果你想全局使用getRealHours()你不需要一个类。
如果要创建函数帮助程序,则必须执行以下操作:
编辑文件composer.json
,放置帮助文件的路径
运行composer dumpautoload
以生成引导程序文件
助手文件应如下所示:
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类的实例并将其发送到你的视图。
您的控制器应如下所示:
$helpers = new DateFunction;
return view('path.to.view', ['helpers' => $helpers]);
在您看来,您可以这样使用它:
<td>{{ $helpers->getRealHours($labour->minutes_worked) }}</td>