Php 在laravel中从视图调用函数的更好方法
我有一个返回两个日期差的函数Php 在laravel中从视图调用函数的更好方法,php,laravel-5,Php,Laravel 5,我有一个返回两个日期差的函数因为日期是从数据库生成的,所以可能有多个记录需要调用此函数 function dateDifference($date_1 , $date_2 , $differenceFormat = '%y Year %m Month' ) { $datetime1 = date_create($date_1); $datetime2 = date_create($date_2); $interval = date_diff($datetime1,
因为日期是从数据库生成的,所以可能有多个记录需要调用此函数
function dateDifference($date_1 , $date_2 , $differenceFormat = '%y Year %m Month' )
{
$datetime1 = date_create($date_1);
$datetime2 = date_create($date_2);
$interval = date_diff($datetime1, $datetime2);
return $interval->format($differenceFormat);
}
现在我要做的是,我必须从视图调用这个函数,因为一个页面中可能有多个日期差异。
在视图中保留逻辑不是很专业。根据我的理解,您有一个在视图中迭代的集合/数组,因此我的建议是,您应该操纵控制器中的所有逻辑,然后将操纵的数据发送到视图,如下所示: 我将您的数据作为一个集合,您可以使用集合方法将数据添加到当前数据中,如下所示: 在控制器中:
$data = collect([...array...]); // This is your data which you can get from DB
$manipulatedData = $data->mapWithKeys(function ($item) {
return [$item['dateDiff'] => dateDifference($item['date1'], $item['date2'])]; // Use your method here
});
并且认为:
@foreach($manipulatedData as $data)
<div>{{ $data->dateDiff }}</div>
@endforeach
@foreach($manufactureddataas$data)
{{$data->dateDiff}
@endforeach
希望这有帮助 根据我的理解,您有一个在视图中迭代的集合/数组,因此我的建议是,您应该操作控制器中的所有逻辑,然后将被操作的数据发送到视图,如下所示: 我将您的数据作为一个集合,您可以使用集合方法将数据添加到当前数据中,如下所示: 在控制器中:
$data = collect([...array...]); // This is your data which you can get from DB
$manipulatedData = $data->mapWithKeys(function ($item) {
return [$item['dateDiff'] => dateDifference($item['date1'], $item['date2'])]; // Use your method here
});
并且认为:
@foreach($manipulatedData as $data)
<div>{{ $data->dateDiff }}</div>
@endforeach
@foreach($manufactureddataas$data)
{{$data->dateDiff}
@endforeach
希望这有帮助 创建一个helper类,并在app/config/app.php中将其注册为别名 例如:
<?php
namespace app\Service;
use Illuminate\Support\Facades\Config;
use Poznet\PPAL\Helpers\Slider;
use Poznet\PPAL\Models\Config as Konfig;
use Illuminate\Support\Facades\Cache;
class FrontendService
{
public static function Config($name){
// put your logic here as foo :)
return $foo;
}
}
并且在视图中,您可以使用
{{ Frontend::config('foo') }}
创建一个helper类,并在app/config/app.php中将其注册为别名 例如:
<?php
namespace app\Service;
use Illuminate\Support\Facades\Config;
use Poznet\PPAL\Helpers\Slider;
use Poznet\PPAL\Models\Config as Konfig;
use Illuminate\Support\Facades\Cache;
class FrontendService
{
public static function Config($name){
// put your logic here as foo :)
return $foo;
}
}
并且在视图中,您可以使用
{{ Frontend::config('foo') }}
您可以在以下实例中使用转换日期列:
您可以在以下实例中使用转换日期列:
我也找到了这个问题的解决办法。在控制器中:
返回视图('viewpage',['controller'=>this])代码>这将发送控制器的对象,然后用于调用函数。在视图中:$controller->dateDifference($date1,$date2)
但我仍然不确定这是否是从viewwell调用函数的更好方法。我还找到了这个问题的解决方案。在控制器中:返回视图('viewpage',['controller'=>this])代码>这将发送控制器的对象,然后用于调用函数。在视图中:$controller->dateDifference($date1,$date2)代码>但我仍然不确定这是否是从视图调用函数的更好方法