【Laravel5】既存のDBからデータを取得して表示する

公開日: : Laravel, MySQL, PHP

スポンサーリンク

はじめに

今まで作ったWebサイトをLaravel5で見れるようにしたのでその時のメモです。

Laravelは勉強している途中なのですが、色々な学習サイトなどを見るとだいたい新規でDBを作って動かすといったものがほとんどで、既存のデータベースからLaravelのフレームワークを利用する方法というのはあまり見かけませんでした。

一応マイグレーション用のツールがあるみたいですが、これは大量のテーブル数をさばくときに使うもののようです。今回はテーブル数も少ないので手動で追加しました。

環境

OS: Ubuntu 14.04
Laravel ver: 5.2.31

データベースの設定

今回はMySQLのデータに対して実施しました。プロジェクトフォルダ直下の「.env」ファイルと「config/database.php」ファイルに対してログイン情報(データベース名、ユーザ名、パスワード)を記述します。一応編集した個所を紹介します。

.envの該当箇所抜粋

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=username
DB_PASSWORD=password

config/database.phpの該当箇所抜粋

        'mysql' => [
            'driver' => 'mysql',
            'host' => env('DB_HOST', 'localhost'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'dbname'),
            'username' => env('DB_USERNAME', 'username'),
            'password' => env('DB_PASSWORD', 'password'),
            'charset' => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix' => '',
            'strict' => false,
            'engine' => null,
        ],

DB接続モジュールの作成

DBと接続するにはモデルを作成します。プロジェクトフォルダ下の「app」フォルダの直下にアクセスしたいテーブル名のPHPファイルを作成します。例えば「samples」テーブルにアクセスしたい場合は「Sample.php」ファイルを作成します。

app/Sample.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Sample extends Model
{
    //
}

そして、例えば「app/config/routes.php」などでそれを呼び出すと下記のようになります。

app/config/routes.php

<?php
use App\Sample;

/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|

Route::get('/', function(){
	//$datas =DB::select('select * from samples');
	$datas = Sample::all();
	return view('test',[
		'datas'=>$datas
	]);
});

useで先ほど作成したモデル(を継承したSampleクラス)を呼び出して、そのallメソッドですべてのレコードを引っ張り出しています。表示はブレードテンプレートを活用してますが、今回は「resources/views/test.blade.php」を作成してそこでdatasという変数を使うようにしました。

上記でコメントアウトしていますが、DBファサードから直接取り出すこともできます。この場合はSample.phpは不要です。

まとめ

既存のDBのデータをLaravelで呼び出して表示させることができました。

スポンサーリンク
  • このエントリーをはてなブックマークに追加

関連記事

WordPressサイトのSSL対応(HTTPS化)手順のまとめ【さくらサーバー】

先週頃にこのサイトをSSL対応しましたのでその流れについてまとめておき

【Google Charts】動的にグラフを更新する方法

はじめに Webサイト上でグラフを描こうと思った場合、いくつかのJa

体重変化量計算シミュレータ【ダイエット/肥満】

ツール本体 入力 カロリー入力 1日の余剰摂取/消費カロリー

おサイフケータイ対応ストレージ32GBのSIMフリースマホまとめ【2017年秋版】

はじめに SIMフリーの格安スマホのおサイフケータイ機能付きのもので

リクルート期間限定ポイントの有効な使い道

はじめに  先日クレジットカードの見直し活動の一環でポイント還元率の

初心者がお金を貯めるための節約・財テク手法まとめ【ポイント還元・投資・税金対策】

はじめに  最近なるべく節約しようと思い、お金周りに関して色々調べて

動画講座を効率的にキャプチャして復習する方法

はじめに  最近、動画媒体の講座などをたまに視聴しています。独学だと

→もっと見る

  • Author : ががんぼ
    プログラミングやWeb関係で気付いたことについてメモしていく予定。だいたいが備忘録ですが、自分でサンプルを作って動かしてみたりしています。
PAGE TOP ↑