【问题标题】:convert null values into empty string in laravel 5.4在laravel 5.4中将空值转换为空字符串
【发布时间】:2017-05-18 04:34:18
【问题描述】:

我想将所有空字符串转换为空字符串,我使用了array_walk_recursive,但我没有得到我想要的,请帮我弄清楚我在这里做错了什么。

protected function setData($key, $value)
{
    $this->data[$key] = $value;
    array_walk_recursive($this->data, function (&$item, $key) {
        $item = null === $item ? '' : $item;
    });
    return $this->data;
}

【问题讨论】:

  • 试试$item = !is_null($item) ? $item : '';
  • 也不行..
  • if($item === NULL){ $item = ''; }

标签: php laravel laravel-5 laravel-5.4


【解决方案1】:

好吧,这只是 eloquent 中的一个灯错误,我们总是在 eloquent 对象中得到结果,在这里我在 array_walk_recursive 中传递 eloquent 对象,所以在传递之前我需要使用 laravel 中的 ->toArray() 方法从 eloquent 对象转换为数组像这样。

在用户控制器内部

$this->setData("friendList", $loadFriends->friends->toArray());

然后array_walk_recursive 将起作用。

protected function setData($key, $value)
{
    array_walk_recursive($value, function (&$item, $key) {
        $item = null === $item ? '' : $item;
    });
    $this->data[$key] = $value;
    return $this->data;
}

【讨论】:

  • 我的荣幸。 :)
【解决方案2】:
    class InputCleanup
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $input = $request->input();

        array_walk_recursive($input, function(&$value) {

            if (is_string($value)) {
                $value = StringHelper::trimNull($value);
            }
        });

        $request->replace($input);

        return $next($request);
    }
}

【讨论】:

    【解决方案3】:

    你的array_walk_recursive()方法应该修改如下。

    array_walk_recursive($input, function($i) use (&$output) {
        $output[] = is_null($i)? '': $i;
    });
    var_dump($output);
    

    $output 包含您想要的结果。你可以return它或者做任何你想做的事情。

    注意:如果$input 不是关联数组,您可以改用array_walk()

    【讨论】:

      猜你喜欢
      • 2015-07-17
      • 1970-01-01
      • 2017-06-14
      • 2016-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多