Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用Laravel和Elount从表格中选择所有_Php_Mysql_Laravel_Laravel 4_Eloquent - Fatal编程技术网

Php 用Laravel和Elount从表格中选择所有

Php 用Laravel和Elount从表格中选择所有,php,mysql,laravel,laravel-4,eloquent,Php,Mysql,Laravel,Laravel 4,Eloquent,我正在使用Laravel4设置我的第一个模型,以从名为posts的表中提取所有行 在标准MySQL中,我将使用: SELECT * FROM posts; 如何在我的Laravel 4模型中实现这一点 有关我的完整模型源代码,请参见以下内容: <?php class Blog extends Eloquent { /** * The database table used by the model. * * @var string *

我正在使用Laravel4设置我的第一个模型,以从名为
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
}
从应用程序中的任何位置

阅读这本书会有很大帮助

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

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

好吧,要用雄辩的语言来做,你应该:

Blog:all();
在您的模型中,您可以执行以下操作:

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

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

一,

例如

  • 在控制器中,将此行放在类之前

    $posts = DB::select('SELECT * FROM posts');
    
    使用照明\Support\Facades\DB;//这将把DB facade导入控制器类

  • 现在在课堂上

    $posts = DB::table('posts')->get(); // it will get the entire table
    
  • 在控制器中,将此行放在类之前

    $posts = DB::select('SELECT * FROM posts');
    
    同样的导入DB facade方法2

  • 现在在控制器中

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

    转到控制器,在函数中写入此项

    public function index()
    {
      $posts = \App\Post::all();
    
      return view('yourview', ['posts' => $posts]);
    }
    
    为了展示它

    @foreach($posts as $post)
      {{ $post->yourColumnName }}
    @endforeach
    
    如何使用laravel查看数据库中的所有数据,我希望此解决方案对初学者有所帮助

    在控制器内部

    public function get(){
            $types = select::all();
            return view('selectview')->with('types', $types);}
    
    在控制器内导入数据模型,在我的应用程序中,导入名为select的数据模型

    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;
    }
    
    选择view.blade.php

    @foreach($types as $type)
        <ul>
        <li>{{ $type->name }}</li>
        </ul>
    
        @endforeach
    
    @foreach($type作为$type)
    
    • {{$type->name}
    @endforeach
    这对我很有效

    $posts = Blog::get()->all();
    
    使用SQL可以执行SQL查询

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

    如果您的表非常大,您还可以通过“小包”处理行(不完全在oce)(laravel文档:)


    在Laravel Eloquent中,您可以在控制器中进行以下查询,以从所需表格中获取所有数据:

    $posts = Post::all();
    return view('post', compact('posts'));
    

    或获取特定列:

    $posts = DB::select('SELECT col_a, col_b, col_c FROM table_x');
    

    为什么不干脆$this->all()?这看起来真的很迂回。小心使用
    ::all()
    ,因为它会将表中的所有内容读取到内存中。若您的表有许多记录,那个么通过这种方式可以很快超过PHP的内存限制。显然,解决方案是使用
    Builder::cursor()
    Builder::chunk()
    如果使用apacheSlight更新代码达到最大内存限制:需要右括号和分号:$posts->each(function($post){//do something});任何关于如何检查$posts是否为空的评论。欢迎访问SO。只使用代码的答案通过解释您的答案如何解决问题而得到改进。@Kamlesh将您的评论作为关于堆栈溢出的单独问题写下来-更详细这与Laravel采用的MVC方法背道而驰。它会起作用,但我认为这是一种糟糕的做法。汉克斯·莫里斯,请随意改进方法。它很简单。不要在控制器内部进行查询,只需调用模型并让它为您执行数据库命令即可。
    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);
    
    $posts = Post::all();
    return view('post', compact('posts'));
    
    $posts = Post::orderBy('id')->get();
    return view('post', compact('posts'));
    
    $posts = DB::select('SELECT * FROM table_x');
    
    $posts = DB::select('SELECT col_a, col_b, col_c FROM table_x');