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
}
アプリケーションのどこからでも。
ドキュメント を読むことは大いに役立ちます。
3つの方法があります。
1。
$entireTable = TableModelName::all();
例えば、
$posts = Posts::get();
この行をコントローラーのクラスの前に置きます
se Illuminate\Support\Facades\DB; //これにより、DBファサードがコントローラークラスにインポートされます
今クラスで
$posts = DB::table('posts')->get(); // it will get the entire table
この行をコントローラーのクラスの前に置きます
方法2と同じようにDBファサードをインポートします
コントローラーで
$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
まあ、雄弁でそれを行うには、あなたがするだろう:
Blog:all();
モデル内から次のことを行います。
return DB::table('posts')->get();
データベースからすべてのデータを取得して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;
}
内部ルーター
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 をご覧ください。これがおそらく彼らが最初に説明することです。
DB facade を使用すると、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);
これは私のために働いた。
$posts = Blog::get()->all();
テーブルが非常に大きい場合は、「小さなパッケージ」(すべてではない)で行を処理することもできます(laravel doc: Eloquent> Chunking Results )
Post::chunk(200, function($posts)
{
foreach ($posts as $post)
{
// process post here.
}
});