button = $button; } public function display($callbackOrButton = null) { $html = $this->value; $remoteUrl = ''; if ($callbackOrButton && $callbackOrButton instanceof \Closure) { $callbackOrButton = $callbackOrButton->call($this->row, $this); if (! $callbackOrButton instanceof LazyRenderable) { $html = Helper::render($callbackOrButton); $callbackOrButton = null; } } if ($callbackOrButton instanceof LazyRenderable) { $html = '
'; $remoteUrl = $callbackOrButton->getUrl(); } elseif (is_string($callbackOrButton) && is_subclass_of($callbackOrButton, LazyRenderable::class)) { $html = '
'; $renderable = $callbackOrButton::make(); $remoteUrl = $renderable->getUrl(); } elseif ($callbackOrButton && is_string($callbackOrButton)) { $this->button = $callbackOrButton; } $button = is_null($this->button) ? $this->value : $this->button; return Admin::view('admin::grid.displayer.expand', [ 'key' => $this->getKey(), 'url' => $remoteUrl, 'button' => $button, 'html' => $html, 'dataKey' => $this->getDataKey(), ]); } protected function getDataKey() { $key = $this->getKey() ?: Str::random(8); static::$counter++; return $this->grid->getName().$key.'-'.static::$counter; } }