Как я могу вызвать функцию? - PullRequest
1 голос
/ 28 марта 2019

У меня есть функция в классе в App / src / utils. У меня проблема с использованием его из контроллера.

Мне нужно создать несколько листов с помощью phpspreadsheet. Длина метода составляет 260 строк. Я не думаю, что это хорошая практика - использовать это в качестве контроллера. Итак, я пытаюсь поместить его в класс (ExcelCreate), который я создал в App / Utils, в открытую функцию excelfrais, которая создает лист с использованием массива с именем $ data и 2 переменных с именами $ user и $ nblig. , Функция сохранения листа и отправки его в браузер. Я поставил "использовать App \ Utils \ ExcelCreate;" в моем контроллере Я вызываю функцию из контроллера.

    use App\Utils\ExcelCreate;
    ...
class ComiteController extends Controller
    {
    public function frais(Request $request, $nblig)
        { ...
                $data=$form->getData();
                $nblig=$data['nblig'];
                excelfrais($user,$data,$nblig); ...
        }}

И есть моя проблема: у меня есть исключение: попытка вызвать функцию "excelfrais" из пространства имен "App \ Controller"

1 Ответ

0 голосов
/ 29 марта 2019

У меня был большой поиск. Внимательно читая документацию Symfony, которую я нашел там: https://symfony.com/doc/current/best_practices/business-logic.html решение: в функции моего контроллера мне нужно использовать класс, функция которого является свойством:

public function frais(Request $request, ExcelCreate $create, $nblig)
    {...}

и вызов этой функции должен быть

$create->excelfrais($user,$data,$nblig);
...