Не пойму, почему у меня на фреймворке выбрасывает 500 ошибка. Так работала когда было на чистом php без фреймворка, то все работало прекрасно, но сейчас даже не доходит до метода getMessage()
Post запрос идет с помощью ajax-а. Раньше не было csrf токена, сейчас он стал, но это в принципе не суть
class LandingController extends Controller
{
public function index(Request $request)
{
$validate = new ValidateLanding($request->all());
return json_decode($validate->getValidate(), JSON_UNESCAPED_UNICODE);
}
}
В ValidateLanding
namespace Latina;
interface ValidateData
{
/**
* Если все верно то сохраняет в бд и отправляют по email лид
* Проверка на заполнение телефона или email
* @return array
*/
public function getValidate();
/**
* Выводит сообщение о результате
* @param bool $error
* @param string $message
* @return array
*/
public function getMessage(bool $error, string $message);
}
class ValidateLanding implements ValidateData
{
private $name;
private $phone;
public $result = [];
public function __construct(array $data)
{
$this->phone = $data['phone'];
$this->name = $data['name'];
}
public function getValidate()
{
if (!$this->name && !$this->phone){
return $this->getMessage(true, 'Заполните имя и телефон');
} elseif (!$this->name){
return $this->getMessage(true, 'Заполните имя');
} elseif (!$this->phone){
return $this->getMessage(true, 'Заполните телефон');
} else {
preg_match('/[\d]+/', $this->name, $matches);
if (strlen($this->phone) != 16){
return $this->getMessage(true, 'Некорректный телефон');
}
if ($matches[0]){
return $this->getMessage(true, 'Имя не должна содержать цифры');
}
return $this->getMessage(false, 'Сообщение отправлено');
}
}
public function getMessage(bool $error, string $message)
{
return $this->result = [
'error' => $error,
'message' => $message
];
}
}
Проблема в том что когда доходит до строки проверки типо
if (!$this->name && !$this->phone){
И так далее, то $this->getMessage он просто не обрабатывает и выкидывает 500 ошибку. Хотя данные есть.
Вот скрин с дебаггера
Я оставил имя и телефон пустыми, чтобы сработало данная проверка, но она доходит до return $this->getMessage и выходит ошибка