diff -u b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php --- b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php +++ b/core/modules/views/src/Plugin/views/field/FieldPluginBase.php @@ -1173,7 +1173,7 @@ } // This happens here so that renderAsLink can get the unaltered value of // this field as a token rather than the altered value. - $this->last_render = $value; + $this->last_render = (string) $value; } if (empty($this->last_render)) { reverted: --- b/core/modules/views/src/Tests/Handler/FieldUnitTest.php +++ a/core/modules/views/src/Tests/Handler/FieldUnitTest.php @@ -577,7 +577,7 @@ // Test a valid string. $view->result[0]->{$column_map_reversed['name']} = $random_name; + $render = $renderer->executeInRenderContext(new RenderContext(), function () use ($view) { - $render = (string) $renderer->executeInRenderContext(new RenderContext(), function () use ($view) { return $view->field['name']->advancedRender($view->result[0]); }); $this->assertIdentical($render, "", 'If the rewritten string is zero, it should be treated as empty.');