<p>The <code>getIsEditable()</code> method was removed in Craft 4.0, in favour of some new element methods like <a href="https://docs.craftcms.com/api/v4/craft-base-elementinterface.html#method-canview" rel="nofollow noreferrer"><code>canView()</code></a> and <a href="https://docs.craftcms.com/api/v4/craft-base-elementinterface.html#method-cansave" rel="nofollow noreferrer"><code>canSave()</code></a>. These were brought in with the new &quot;unified element editor&quot; and AFAIK these methods are only <a href="https://craftcms.com/docs/4.x/extend/updating-plugins.html#unified-element-editor" rel="nofollow noreferrer">mentioned in the plugin upgrade guide</a>, not the main Craft 4 upgrade guide. They are still totally fine to use in front end templates, though.</p>
<p>To replace <code>getIsEditable()</code>, the closest equivalent is probably the <code>canSave()</code> method:</p>
<pre><code>{% if currentUser and entry.canSave(currentUser) %}
    ...
{% endif %}
</code></pre>
<p>Also, in Craft 4.3 the new global Twig functions <a href="https://craftcms.com/docs/4.x/dev/functions.html#canview" rel="nofollow noreferrer"><code>canView()</code></a> and <a href="https://craftcms.com/docs/4.x/dev/functions.html#cansave" rel="nofollow noreferrer"><code>canSave()</code></a> were added, which wraps the methods mentioned above. I personally prefer to use the global functions, as they typically make a conditional like the above a lot terser:</p>
<pre><code>{% if canSave(entry) %}
    ...
{% endif %}
</code></pre>

CC BY-SA 4.0
2024-03-11T17:39:04.390Z
2024-03-11T17:39:04.390Z
Mats Mikkel Rummelhoff
<p>Do the &quot;isEditable&quot; property of Entry still exists?
Whats the best way to achieve the same functionallity in Craft 4?</p>
<pre><code>{% if entry.isEditable() %}
</code></pre>
<p>After I upgraded from Craft 3 to 4, all my &quot;edit links&quot; are gone from the website.
Looking at the Craft's documentation, it's missing this property in v4 docs (but exist in v3).</p>
<p><a href="https://docs.craftcms.com/api/v4/craft-elements-entry.html#public-properties" rel="nofollow noreferrer">https://docs.craftcms.com/api/v4/craft-elements-entry.html#public-properties</a>
<a href="https://docs.craftcms.com/api/v3/craft-elements-entry.html#public-properties" rel="nofollow noreferrer">https://docs.craftcms.com/api/v3/craft-elements-entry.html#public-properties</a></p>

<craft4>
"entry.isEditable()" not working on Craft CMS 4
# "entry.isEditable()" not working on Craft CMS 4

(Asked by: username_0 on 2024-03-11)

Do the "isEditable" property of Entry still exists?
Whats the best way to achieve the same functionallity in Craft 4?
{% if entry.isEditable() %}

After I upgraded from Craft 3 to 4, all my "edit links" are gone from the website.
Looking at the Craft's documentation, it's missing this property in v4 docs (but exist in v3).
https://docs.craftcms.com/api/v4/craft-elements-entry.html#public-properties
https://docs.craftcms.com/api/v3/craft-elements-entry.html#public-properties

**Tags:** craft4


---

## 1 answers

### Answer by username_1 on 2024-03-11. Score: 3

The getIsEditable() method was removed in Craft 4.0, in favour of some new element methods like canView() and canSave(). These were brought in with the new "unified element editor" and AFAIK these methods are only mentioned in the plugin upgrade guide, not the main Craft 4 upgrade guide. They are still totally fine to use in front end templates, though.
To replace getIsEditable(), the closest equivalent is probably the canSave() method:
{% if currentUser and entry.canSave(currentUser) %}
    ...
{% endif %}

Also, in Craft 4.3 the new global Twig functions canView() and canSave() were added, which wraps the methods mentioned above. I personally prefer to use the global functions, as they typically make a conditional like the above a lot terser:
{% if canSave(entry) %}
    ...
{% endif %}


---

