Выделить все из таблицы с помощью Laravel и Eloquent

Я использую Laravel 4, чтобы настроить мою первую модель, чтобы вытащить все строки из таблицы, называемой posts.

В стандартном MySQL я бы использовал:

SELECT * FROM posts;

Как достичь этого в моей модели Laravel 4?

Ниже приведено полное описание исходного кода модели:

<?php

class Blog extends Eloquent 
{

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

    public function getAllPosts()
    {

    }

}

Ответы

Ответ 1

Вы просто звоните

Blog::all();

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

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

из любого места в вашем приложении.

Чтение документации очень поможет.

Ответ 2

Есть 3 способа сделать это.

1.

$entireTable = TableModelName::all();

например,

$posts = Posts::get(); 
  1. поставить эту строку перед классом в контроллере

    использовать Освещение\Поддержка\Фасады\БД; // это импортирует фасад БД в ваш класс контроллера

Сейчас в классе

$posts = DB::table('posts')->get(); // it will get the entire table
  1. поставить эту строку перед классом в контроллере

    То же импортировать фасад БД, как метод 2

Сейчас в контроллере

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

Ответ 3

перейдите к своему контроллеру, напишите это в функции

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

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

чтобы показать это

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

Ответ 4

Ну, чтобы сделать это с красноречивым, вы бы сделали:

Blog:all();

Из вашей модели вы делаете:

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

http://laravel.com/docs/queries

Ответ 5

Если вы хотите получить все записи, но заказанные через какое-либо поле (-ы), все() не будут работать, вам придется выпустить:

MyModel::orderBy('field1', 'desc')->orderBy('field2')->get();

Ответ 6

Как получить все данные из базы данных для просмотра с помощью laravel, я надеюсь, что это решение будет полезно для новичков.

Внутри вашего контроллера

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

Импортируйте модель данных внутри вашего контроллера, в моем приложении модель данных называется как.

use App\Select;

Включение моего контроллера выглядит примерно так:

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

выбрать модель

<?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;
}

внутри маршрутизатора

Route::get('/selectview', '[email protected]');

selectview.blade.php

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

    @endforeach

Ответ 7

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

Взгляните на документы, это, вероятно, первое, что они объясняют.

Ответ 8

Это сработало для меня.

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

Ответ 9

используя фасад БД, вы можете выполнять SQL-запросы

 public function index()
{
    return DB::table('table_name')->get();
}

Ответ 10

Если ваша таблица очень большая, вы также можете обрабатывать строки с помощью "маленьких пакетов" (не все вначале) (laravel doc: Eloquent> Chunking Results)

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

Ответ 11

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);