在laravel 5.4中将空值转换为空字符串

时间:2017-05-18 04:34:18

标签: php laravel laravel-5 laravel-5.4

我想用空字符串转换所有null我使用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;
}

3 个答案:

答案 0 :(得分:1)

好吧,这只是一个灯光错误,在雄辩中我们总是得到雄辩的对象,在这里我在select procedurename from table name t1 内传递雄辩的对象所以在传递之前我需要使用{{1}从雄辩的对象转换为数组像这样的laravel中的方法。

在用户控制器

array_walk_recursive

然后->toArray()将起作用。

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

答案 1 :(得分:0)

    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);
    }
}

答案 2 :(得分:0)

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

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

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

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