简体   繁体   中英

In Laravel Eloquent, does Model::get() actually fetch the results?

Consider this line:

$nodes = Node::orderBy("id", "desc")->take(5)->get()

After the execution of the above line, was the Database queried (results were returned)?

Yes, it was queried, and you should have the results in $nodes .

The ->get() on the end is what prompts the execution of the query. Up until that is called, you can continue adding conditions to your query. The Advanced Wheres section of the Laravel docs has some good examples

Note - If you want to have a look at what's going on, you can always use DB::getQueryLog()

$queries = DB::getQueryLog();

Something (very quick and dirty) like this works in a View :

@foreach(DB::getQueryLog() as $query)
  <pre> {{ print_r($query) }}</pre>
@endforeach

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM