1. Introduction
In this article, I would like to introduce to you one of Laravel’s built-in methods, find()
and the most effective ways to use find()
.
2. Parameters of the find()
method
The find($id, $columns = ['*'])
method takes 2 parameters and requires at least 1 parameter to use:
$id
: The primary_key column value you want to find, can pass 1 or 1 array of values.$columns
: Columns want to query (default value$columns
will be all columns*
).
Return value: if $id
is passed as an array, the result will be an array of records whose primary key is in the $id
array, and otherwise, only one record with a primary key equal to $id
will be returned.
Source code of the find()
method .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <span class="token comment">/** * Find a model by its primary key. * * @param mixed $id * @param array $columns * @return IlluminateDatabaseEloquentModel|IlluminateDatabaseEloquentCollection|static[]|static|null */</span> <span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function-definition function">find</span> <span class="token punctuation">(</span> <span class="token variable">$id</span> <span class="token punctuation">,</span> <span class="token variable">$columns</span> <span class="token operator">=</span> <span class="token punctuation">[</span> <span class="token string single-quoted-string">'*'</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">if</span> <span class="token punctuation">(</span> <span class="token function">is_array</span> <span class="token punctuation">(</span> <span class="token variable">$id</span> <span class="token punctuation">)</span> <span class="token operator">||</span> <span class="token variable">$id</span> <span class="token keyword">instanceof</span> <span class="token class-name">Arrayable</span> <span class="token punctuation">)</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token variable">$this</span> <span class="token operator">-></span> <span class="token function">findMany</span> <span class="token punctuation">(</span> <span class="token variable">$id</span> <span class="token punctuation">,</span> <span class="token variable">$columns</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> <span class="token keyword">return</span> <span class="token variable">$this</span> <span class="token operator">-></span> <span class="token function">whereKey</span> <span class="token punctuation">(</span> <span class="token variable">$id</span> <span class="token punctuation">)</span> <span class="token operator">-></span> <span class="token function">first</span> <span class="token punctuation">(</span> <span class="token variable">$columns</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> <span class="token punctuation">}</span> |
For example:
1 2 | <span class="token variable">$post</span> <span class="token operator">=</span> <span class="token class-name static-context">Post</span> <span class="token operator">::</span> <span class="token function">find</span> <span class="token punctuation">(</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token punctuation">[</span> <span class="token string single-quoted-string">'id'</span> <span class="token punctuation">,</span> <span class="token string single-quoted-string">'title'</span> <span class="token punctuation">,</span> <span class="token string single-quoted-string">'url'</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
1 2 3 | <span class="token variable">$postIds</span> <span class="token operator">=</span> <span class="token punctuation">[</span> <span class="token number">1</span> <span class="token punctuation">,</span> <span class="token number">2</span> <span class="token punctuation">,</span> <span class="token number">3</span> <span class="token punctuation">]</span> <span class="token punctuation">;</span> <span class="token variable">$posts</span> <span class="token operator">=</span> <span class="token class-name static-context">Post</span> <span class="token operator">::</span> <span class="token function">find</span> <span class="token punctuation">(</span> <span class="token variable">$postIds</span> <span class="token punctuation">,</span> <span class="token punctuation">[</span> <span class="token string single-quoted-string">'id'</span> <span class="token punctuation">,</span> <span class="token string single-quoted-string">'title'</span> <span class="token punctuation">,</span> <span class="token string single-quoted-string">'url'</span> <span class="token punctuation">]</span> <span class="token punctuation">)</span> <span class="token punctuation">;</span> |
3. Other related methods
In addition to the find()
method, laravel also provides other methods:
findMany($ids, $columns = ['*'])
: Find multiple records by primary key array$ids
.findOrFail($id, $columns = ['*'])
: Find records by$id
, if not found, return exception .findOrNew($id, $columns = ['*'])
: Find records by$id
, if not found, create a new instance of model .
4. References
5. Conclusion
On the Laravel website, there are detailed instructions on all the methods that laravel supports. There is also a Laravel source github page where you can read more as well as test many cases to be able to use them correctly. effective in the best case.
Hope this sharing will help you newbie a bit in the process of learning about Laravel. If you find it useful, please give me 1 vote to let more people know and share this.
I’m Cong Thanh, thank you for following my article, if you have any questions, please comment below.