Почему у меня возвращает 500 ошибка?

Не пойму, почему у меня на фреймворке выбрасывает 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 ошибку. Хотя данные есть.
Вот скрин с дебаггера
5b813a7da28aa934963157.png
Я оставил имя и телефон пустыми, чтобы сработало данная проверка, но она доходит до return $this->getMessage и выходит ошибка
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
Ошибку в логах-то посмотрите...

Там написано jquery-3.3.1.min.js:2 POST latina.site/form-landing 500 (Internal Server Error)

И нет это не та ошибка.

storage/logs/laravel.log
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы