web-dev-qa-db-fra.com

Sélectionnez tout du tableau avec Laravel et Eloquent

J'utilise Laravel 4 pour configurer mon premier modèle afin d'extraire toutes les lignes d'une table appelée posts.

En MySQL standard, j'utiliserais:

SELECT * FROM posts;

Comment y parvenir dans mon modèle Laravel 4?

Voir ci-dessous pour le code source complet de mon modèle:

<?php

class Blog extends Eloquent 
{

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'posts';

    public function getAllPosts()
    {

    }

}
25
RSM

Vous appelez simplement

Blog::all();

//example usage.
$posts = Blog::all();

$posts->each(function($post) // foreach($posts as $post) { }
{
    //do something
}

de n'importe où dans votre application.

La lecture de la documentation aidera beaucoup.

59
Sturm

Il y a trois façons de le faire.

1.

$entireTable = TableModelName::all();

par exemple,

$posts = Posts::get(); 
  1. mettre cette ligne devant la classe dans le contrôleur

    tilisez Illuminate\Support\Facades\DB; // ceci importera la façade DB dans votre classe de contrôleur

Maintenant dans la classe

$posts = DB::table('posts')->get(); // it will get the entire table
  1. mettre cette ligne devant la classe dans le contrôleur

    Même import de la façade DB comme méthode 2

Maintenant dans le contrôleur

$posts = DB::select('SELECT * FROM posts');
16
Koushik Das

aller sur votre contrôleur écrire ceci en fonction

public function index()
{
  $posts = \App\Post::all();

  return view('yourview', ['posts' => $posts]);
}

en vue de le montrer

@foreach($posts as $post)
  {{ $post->yourColumnName }}
@endforeach
6
Chando

Eh bien, pour le faire avec éloquence, vous feriez:

Blog:all();

Depuis votre modèle, vous faites:

return DB::table('posts')->get();

http://laravel.com/docs/queries

4
Kolby

Comment obtenir toutes les données de la base de données à l’aide de laravel, j’espère que cette solution sera utile aux débutants.

À l'intérieur de votre contrôleur

public function get(){
        $types = select::all();
        return view('selectview')->with('types', $types);}

Importer un modèle de données dans votre contrôleur, dans mon application, le modèle de données nommé en tant que select.

use App\Select;

Y compris les deux mon contrôleur ressemble à quelque chose comme ça

use App\Select;
class SelectController extends Controller{                             
    public function get(){
    $types = select::all();
    return view('selectview')->with('types', $types);}

sélectionner le modèle

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Select extends Model
{
    protected $fillable = [
        'name', 'email','phone','radio1','service',
    ];


    protected $table = 'selectdata';
    public $timestamps = false;
}

routeur intérieur

Route::get('/selectview', 'SelectController@get');

selectview.blade.php

@foreach($types as $type)
    <ul>
    <li>{{ $type->name }}</li>
    </ul>

    @endforeach
 public function getAllPosts()
 {
   return  Blog::all();        
 }

Jetez un coup d'oeil au docs c'est probablement la première chose qu'ils expliquent.

0
Lucky Soni

en utilisant façade DB vous pouvez effectuer des requêtes SQL

 public function index()
{
    return DB::table('table_name')->get();
}
0
Guaracy A. Lima
Query
// Select all data of model table
Model::all();
// Select all data of model table
Model::get();

Model::where('foo', '=', 'bar')->get();

Model::find(1);
Model::find([1, 2, 3]);
Model::findOrFail(1);
0
Ritesh ritfriends

Cela a fonctionné pour moi.

$posts = Blog::get()->all();
0
user2325149

Si votre table est très grande, vous pouvez également traiter les rangées par "petits paquets" (pas tous à la même heure) (laravel doc: Eloquent> Résultats de segmentation )

Post::chunk(200, function($posts)
{
    foreach ($posts as $post)
    {
        // process post here.
    }
});
0
Kamil Kiełczewski