Select all from table with Laravel and Eloquent
go to your Controller write this in function
public function index()
{
$posts = \App\Post::all();
return view('yourview', ['posts' => $posts]);
}
in view to show it
@foreach($posts as $post)
{{ $post->yourColumnName }}
@endforeach
You simply call
Blog::all();
//example usage.
$posts = Blog::all();
$posts->each(function($post) // foreach($posts as $post) { }
{
//do something
}
from anywhere in your application.
Reading the documentation will help a lot.
There are 3 ways that one can do that.
1 - Use all() or get();
$entireTable = TableModelName::all();
eg,
$posts = Post::get(); // both get and all will work here
or
$posts = Post::all();
2 - Use the DB facade
Put this line before the class in the controller
use Illuminate\Support\Facades\DB; // this will import the DB facade into your controller class
Now in the class
$posts = DB::table('posts')->get(); // it will get the entire table
or a more dynamic way would be -
$postTable = (new Post())->getTable(); // This will get the table name
$posts = DB::table($postTable)->get();
The advantage of this way is that in case you ever change the table name, it would not return any error since it gets the table name dynamically from the Post
model. Make sure to import Post
model at the top like DB
fadade.
3 - Use the DB facade with select
Put this line before the class in the controller
*Same import the DB facade like method 2*
Now in the controller
$posts = DB::select('SELECT * FROM posts');