Я пытаюсь получить данные из функции profileData из First Controller и преобразовать их в HTML во втором контроллере. Я не смог пройти через ошибку "Вызов функции-члена has () в null". Как мне это исправить?
Вот функция, указанная в первом контроллере.
public function profileData(Request $request, $uuid){
$em = $this->getDoctrine()->getManager();
$currentUser = $this->get('security.token_storage')->getToken()->getUser();
$customerRepo = $em->getRepository('CoreEntity:SubscribedCustomer');
$subscribedCustomer = $customerRepo->findOneBy(array('customer' => $uuid, 'consultant' => $currentUser->getId()));
$customer = $subscribedCustomer->getCustomer();
$age = 'N/A';
$dob = $customer->getDateOfBirth();
if ($dob) {
$birthYear = $customer->getDateOfBirth()->format('Y');
$yearNow = date('Y');
$age = $yearNow - $birthYear;
$dob = $customer->getDateOfBirth()->format('Y-m-d');
} else {
$dob = "";
}
if ($customer->getStatus() === 1) {
$status = "Active";
} else {
$status = "Inactive";
}
$data = array(
'firstName' => $customer->getFirstName(),
'lastName' => $customer->getLastName(),
'email' => $customer->getEmail(),
'phoneNum' => $customer->getPhoneNumber(),
'gender' => $customer->getGender(),
'age' => $age,
'status' => $status,
'dob' => $dob
);
}
Во втором контроллере я хочу отобразить данные в
/**
* @Route("/client/{uuid}/basic_health/bmi", name="client_bh_bmi")
*/
public function basicHealthBmiAction($uuid)
{
$this->checkWebModuleAccess(WebModuleCode::MANAGE_CLIENT);
$profileData = $this->get('client_profile_data')->profileData();
return $this->render('AppBundle:client/health_record/basic_health:bmi.html.twig', array(
'customer' => $data
));
}
В services.yml:
services:
client_profile_data:
class: AppBundle\Controller\FirstController