Создайте глобальную функцию validate_date в DateTimeHelper.php, чтобы использовать эту функцию во всех контроллерах laravel.php

У меня есть отдельные функции validate_date в controller1.php, controller2.php и controller3.php. Я хочу создать глобальную функцию в DateTimeHelper.php для проверки дат вместо создания функции в каждом контроллере для этой функции. Я использую Laravel в бэкэнде
Controller1:

private function validate_date($date)
{
$split_date = explode('/', $date);
if (count($split_date) == 3) {
return checkdate($split_date [0], $split_date [1], $split_date [2]);
}

return false;
}

Controller2 && контроллер 3:

private function validate_date($date)
{
if ($this->check_field($date) && $date !== 'Invalid date') {
return true;
}

return false;
}

Моя проблема в том, что я использую разные функции в разных контроллерах, мне нужна глобальная функция для проверки дат вместо создания функции в каждом контроллере для этой функции.

0

Решение

Следующий метод, вероятно, сделает то, что вы ищете:

Создайте новый файл с именем DateTimeHelper.php внутри (новой) папки помощников. Окончательный путь будет app \ Helpers \ DateTimeHelper.php.

Содержимое DateTimeHelper.php будет выглядеть так:

<?php
namespace App\Helpers;

class DateTimeHelper {
public function validate()
{
}

public function checkField()
{
}
}

Теперь отредактируйте контроллеры, где вы хотите использовать класс, добавьте защищенное свойство $ dateTimeHelper и используйте Laravel’s Автоматический впрыск как это:

<?php

namespace App\Http\Controllers;

use App\Helpers\DateTimeHelper;

class UserController extends Controller
{
protected $dateTimeHelper;

/**
* Create a new controller instance.
*
* @param  DateTimeHelper  $dateTimeHelper
* @return void
*/
public function __construct(DateTimeHelper $dateTimeHelper)
{
$this->dateTimeHelper = $dateTimeHelper;
}

public function show($date)
{
return $this->dateTimeHelper->validate($date);
}
}

Надеюсь, это должно решить проблему, однако, я бы рекомендовал изучить Проверка Laravel.

1

Другие решения

Как насчет класса обслуживания вместо вспомогательной функции и размещения всех возможных проверок даты из системы в этом классе обслуживания?

-1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector