【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で呼び出して表示させることができました。

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

関連記事

【PHP】dateで指定日前の日付を出力する

指定日前の日付の取得方法 date_default_timezone_set('Asia/

記事を読む

PHPでページリロードをしようと思ったができなかったので

header("Location: ".$_SERVER); とすればページをリロードでき

記事を読む

【CakePHP3】無関係な複数テーブルのデータを一つのコントローラで扱う

CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegis

記事を読む

【PHP】WebAPIのJSONファイルを読み込む

WebAPIでJSONファイルを使う機会があったので使い方をメモ。最近ではWebAPIはSNSやブロ

記事を読む

no image

【PEAR】Services_AmazonのItemLookupで複数ASINを指定する

Amazon Product Advertising APIをPEARのServices_Amazo

記事を読む

【PHP】特定のURLからそのAtomやRSSのフィードを抽出する方法

特定のURLからRSSやATOMのフィードを抽出する方法をメモ。 流れとしては指定のWebページH

記事を読む

TwitterAPIでデベロッパー登録しようとすると携帯情報を追加しろと出る件について

TwitterAPIのデベロッパー登録ページ(https://dev.twitter.com)でアプ

記事を読む

【twitteroauth】TwitterAPIで検索して特定のつぶやきをしたユーザーを取得する方法【PHP】

twitteroauthを利用してワード検索して特定のつぶやきをしたユーザーを取得する方法です。tw

記事を読む

【PHP】file_get_contentsでリンク元などのヘッダ情報を変更する

file_get_contentsで他サイトの情報を読み取る際などでリンク元を明記したい場合は以下の

記事を読む

【TwitterOauth】特定のつぶやきを取得してリツイート数順やランダム順にする【PHP】

TwitterOauthを利用して特定のワードをつぶやいたデータを取得してそれをリツイート順なりに並

記事を読む

【Unity】他のスクリプトを一括で取得して有効化・無効化を制御する

Unityを使っていて他のスクリプトを一時的に停止させたいと思ったので

テレビの録画をPCやNASで共有する

今までテレビはテレビ用のモニターで見ればいいやと思っていたのですが、さ

【DeepLearning】物体検出手法のSSD(Keras版)を試す (Ubuntu14.04)

はやりのディープラーニングの物体検出手法の一つであるSSDのサンプルを

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

はじめに 今まで作ったWebサイトをLaravel5で見れるようにし

【C++/OpenCV】cv::Matの画像にインパルスノイズを付加する

OpenCVで画像にノイズを付け足したいと思って調べたところ、Pyth

Intel Corei7-7700TでHTC Viveの動作確認

はじめに HTC ViveというVRヘッドセットで遊んでみたのでその

【Python】フォルダ内のカッコ付き数字ファイルを一括でリネームするスクリプト

はじめに タイトルどおりなのですが、指定フォルダ内のファイルのファイ

→もっと見る

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