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()
{
}
}
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.
Il y a trois façons de le faire.
1.
$entireTable = TableModelName::all();
par exemple,
$posts = Posts::get();
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
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');
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
Eh bien, pour le faire avec éloquence, vous feriez:
Blog:all();
Depuis votre modèle, vous faites:
return DB::table('posts')->get();
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.
en utilisant façade DB vous pouvez effectuer des requêtes SQL
public function index()
{
return DB::table('table_name')->get();
}
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);
Cela a fonctionné pour moi.
$posts = Blog::get()->all();
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.
}
});