从Laravel和Eloquent的桌子中选择所有

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从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()
    {

    }

}
答案

你只需打电话

Blog::all();

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

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

来自您应用程序的任何位置

阅读documentation将有很大帮助。

另一答案
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);
另一答案

有三种方法可以做到这一点。

1.

$entireTable = TableModelName::all();

例如,

$posts = Posts::get(); 
  1. 将此行放在控制器中的类之前 使用Illuminate Support Facades DB; //这会将数据库外观导入您的控制器类

现在在课堂上

$posts = DB::table('posts')->get(); // it will get the entire table
  1. 将此行放在控制器中的类之前 同样导入数据库外观,如方法2

现在在控制器中

$posts = DB::select('SELECT * FROM posts');
另一答案

转到你的控制器写这个功能

public function index()
{
  $posts = AppPost::all();

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

为了表明它

@foreach($posts as $post)
  {{ $post->yourColumnName }}
@endforeach
另一答案

好吧,要做到雄辩,你会这样做:

Blog:all();

在您的模型中,您可以:

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

http://laravel.com/docs/queries

另一答案

如何使用laravel从数据库中获取所有数据,我希望这个解决方案对初学者有用。

在你的控制器内

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

导入控制器内部的数据模型,在我的应用程序中将数据模型命名为select。

use AppSelect;

包含我的控制器看起来像这样

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

选择模型

<?php

namespace App;

use IlluminateDatabaseEloquentModel;

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


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

在路由器内

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

看看docs这可能是他们解释的第一件事。

另一答案

这对我有用。

$posts = Blog::get()->all();
另一答案

使用DB facade可以执行SQL查询

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

如果你的表非常大,你也可以通过“小包”处理行(不是所有在oce)(laravel doc:Eloquent> Chunking Results

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

以上是关于从Laravel和Eloquent的桌子中选择所有的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Eloquent 从一个表中选择并在另一个表中有匹配项时加入第一行

Laravel Eloquent 从关系中选择

Laravel Eloquent - 一张桌子的多个模型

Laravel - 使用 Eloquent 从连接关系模型中选择特定列

在 laravel eloquent 中获取除当前登录用户之外的所有用户

Laravel Eloquent:如何从多个表中进行选择