PHP- Laravel Как вызвать функцию внутри функции?

#php #laravel

#php #laravel

Вопрос:

У меня есть следующий код, как показано ниже:

 public function __invoke(Request $request)
{
  $this->isRequestInvalid($request);
  $result = $request->ssid;

  return $result;

}

public function isRequestInvalid($request)
{
 $validator = Validator::make($request->all(), [
            'ssid'  => 'required',
            'sid'   => 'required',
            'receiptinfo' => 'required',
        ]);

        if ($validator->fails()) {
            return "Something";
        }
        return true;
}
  

Я думаю, если функция isRequestInvalid($request) — это работа. это должно возвращать «Что-то»; Но, почему мой код, выполняющий даже функцию, был вызван и возвращен?

Примечание: я не хочу добавлять условие if внутри __invoke()

Ответ №1:

Поскольку у вас нет ничего, что использует или хранит возвращаемое значение из $this->isRequestInvalid($request); , вы можете вернуть false при сбое проверки

 if ($validator->fails()) {
    return false;
}
  

и выполните обработку в __invoke

 if (!$this->isRequestInvalid($request);) {
    return "Something";
}