Answers.Body: <p>There's also a really good answer explained in this ticket. Similar explanation but this made it click for me.</p>
  
  <p><a href="https://craftcms.stackexchange.com/a/23951/4433">https://craftcms.stackexchange.com/a/23951/4433</a></p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2018-02-21T22:50:57.347Z
Answers.LastActivityDate: 2018-02-21T22:50:57.347Z
Answers.UserDisplayName: Ryan
Answers.Body: <p>The <a href="https://craftcms.com/docs/templating/elementcriteriamodel">ElementCriteraModel description in the docs</a> explains what the <a href="https://craftcms.com/docs/templating/elementcriteriamodel#find"><code>find()</code></a> method does.</p>
  
  <p>Essentially, when you use <code>craft.entries</code> you are building an <code>ElementCriteriaModel</code> object that represents the query that you want to make. That query doesn't actually happen until you call the <code>find()</code> method.</p>
  
  <p>As the docs state, as soon as you treat <code>craft.entries</code> (or a variable that you have assigned it to) as an array, by using it in a <code>{% for %}</code> loop, or by calling the <code>| length</code> filter on it, <code>find()</code> is automatically called.</p>
  
  <p>So in the example in your question, you can safely leave out the <code>find()</code> and it will be called automatically anyway when the <code>{% for %}</code> loop is executed.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-04-05T07:21:07.763Z
Answers.LastActivityDate: 2016-04-05T07:21:07.763Z
Answers.UserDisplayName: Steve Rowling
Body: <p>I've noticed code samples like the following that use the <code>find()</code> method.</p>
  
  <pre><code>{% for entry in craft.entries.section('blog').limit(5).find() %}
      &lt;li&gt;&lt;a href="{{ entry.url }}"&gt;{{ entry.title }}&lt;/a&gt;&lt;/li&gt;
  {% endfor %}
  </code></pre>
  
  <p>I've noticed that this code sample works just as well without the <code>find()</code> method attached. Is there a particular reason we use <code>find()</code>? Are there instances where it's required? Should I be using it even if the code works without it?</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2016-04-05T01:18:22.550Z
Comments.Text: Hi Tim - I asked the same thing a while ago - I think it was within Slack though. Someone else will give a much better answer I'm sure but...When working with entries the `.find()` is implied. Craft will do it automatically and it won't hurt anything if you call it. There are other times where `find()` is implied but I forget what that is.
  
  There are other cases though where you do need to call `find()`.
Comments.UserDisplayName: Damon
Tags: <entries><queries>
Title: When is the find() method actually necessary?
ThreadText: # When is the find() method actually necessary?
  
  (Asked by: username_0 on 2016-04-05)
  
  I've noticed code samples like the following that use the `find()` method.
  
  ```
  {% for entry in craft.entries.section('blog').limit(5).find() %}
      <li><a href="{{ entry.url }}">{{ entry.title }}</a></li>
  {% endfor %}
  
  ```
  
  I've noticed that this code sample works just as well without the `find()` method attached. Is there a particular reason we use `find()`? Are there instances where it's required? Should I be using it even if the code works without it?
  
  **Tags:** entries, queries
  
  > **Comments:**
  > **username_1**: Hi Tim - I asked the same thing a while ago - I think it was within Slack though. Someone else will give a much better answer I'm sure but...When working with entries the `.find()` is implied. Craft will do it automatically and it won't hurt anything if you call it. There are other times where `find()` is implied but I forget what that is.  There are other cases though where you do need to call `find()`.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_3 on 2016-04-05. Score: 6 | Accepted answer
  
  The [ElementCriteraModel description in the docs](https://craftcms.com/docs/templating/elementcriteriamodel) explains what the [`find()`](https://craftcms.com/docs/templating/elementcriteriamodel#find) method does.
  
  Essentially, when you use `craft.entries` you are building an `ElementCriteriaModel` object that represents the query that you want to make. That query doesn't actually happen until you call the `find()` method.
  
  As the docs state, as soon as you treat `craft.entries` (or a variable that you have assigned it to) as an array, by using it in a `{% for %}` loop, or by calling the `| length` filter on it, `find()` is automatically called.
  
  So in the example in your question, you can safely leave out the `find()` and it will be called automatically anyway when the `{% for %}` loop is executed.
  
  
  ---
  
  ### Answer by username_2 on 2018-02-21. Score: 1
  
  There's also a really good answer explained in this ticket. Similar explanation but this made it click for me.
  
  <https://craftcms.stackexchange.com/a/23951/4433>
  
  
  ---
  
  