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)但我仍然不确定这是否是从视图调用函数的更好方法