Строка запроса возвращает null как строку - PullRequest
0 голосов
/ 17 июня 2020

Я отправлял данные спереди назад, но когда запросы нулевые laravel возвращаю это как строку 'null'

url: url=example.com?name=null&phone=000000

$name=$request->input('name'); результат: name='null'

Я могу использовать $name=$request->input('name')==='null'? null :$request->input('name');
Но я ищу более чистое решение

Ответы [ 2 ]

1 голос
/ 18 июня 2020

Laravel уже имеет несколько промежуточных программ

App \ Http \ Middleware \ TrimStrings - удаляет пробелы из строк Illuminate \ Foundation \ Http \ Middleware \ ConvertEmptyStringsToNull - преобразует пустые строки в null , ie "" будет преобразовано в null.

Если немного углубиться, Laravel внутренне имеет встроенный класс для преобразования входящего запроса, ie. * Illuminate \ Foundation \ Http \ Middleware \ TransformsRequest.

Теперь вы можете создать собственное промежуточное ПО для преобразования входящего запроса.

<?php

namespace App\Http\Middlewares;

use Illuminate\Foundation\Http\Middleware\TransformsRequest;

class CastStringifiedNullToNull extends TransformsRequest
{
    /**
     * Transform the given value.
     *
     * @param  string  $key
     * @param  mixed  $value
     * @return mixed
     */
    protected function transform($key, $value)
    {
        return is_string($value) && $value === 'null' ? null : $value;
    }
}
0 голосов
/ 17 июня 2020

Вы можете сделать это для более чистого решения:

$name = $request->input('name') ?? NULL;

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...