diff --git a/src/Plugin/views/field/FlagViewsLinkField.php b/src/Plugin/views/field/FlagViewsLinkField.php
index 6a22a3b..958057c 100644
--- a/src/Plugin/views/field/FlagViewsLinkField.php
+++ b/src/Plugin/views/field/FlagViewsLinkField.php
@@ -6,6 +6,7 @@
 
 namespace Drupal\flag\Plugin\views\field;
 
+use Drupal\flag\Entity\Flagging;
 use Drupal\views\Plugin\views\field\FieldPluginBase;
 use Drupal\views\ResultRow;
 use Drupal\Core\Form\FormStateInterface;
@@ -31,8 +32,9 @@ class FlagViewsLinkField extends FieldPluginBase {
     // When editing a view it's possible to delete the relationship (either by
     // error or to later recreate it), so we have to guard against a missing
     // one.
-    if (isset($this->view->relationship[$this->options['relationship']])) {
-      return $this->view->relationship[$this->options['relationship']]->getFlag();
+    if (isset($this->view->filter['flag_id'])) {
+      $flag_id = $this->view->filter['flag_id']->value;
+      return \Drupal::service('flag')->getFlagById($flag_id);
     }
 
     return NULL;
@@ -74,7 +76,12 @@ class FlagViewsLinkField extends FieldPluginBase {
    */
   public function render(ResultRow $values) {
     // $entity = $this->getEntity($values);
-    return $this->renderLink($values->_entity, $values);
+
+    $entity = $values->_entity;
+    if ($values->_entity instanceof Flagging) {
+      $entity = \Drupal::entityTypeManager()->getStorage($values->_entity->entity_type->value)->load($values->_entity->entity_id->value);
+    }
+    return $this->renderLink($entity, $values);
   }
 
   /**
