Amazon EC2(Amazon Linux)にPHP7をyumでインストールし、Nginxで表示
o_wani
owani.net#stay.hungry
前回の続きとして、今回はデータベースの設定を進める。
config/database.php
を修正する。
defaultの値:mysql
'default' => env('DB_CONNECTION', 'mysql'),
mysqlの設定:接続情報を記載
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
users
テーブル例)以下のようなテーブル構成:
> select * from users\G
*************************** 1. row ***************************
id: 1
ip_address: 127.0.0.1
username: administrator
password: $2a$07$S9uyftVopmu61qgmTo36
salt:
email: admin@admin.com
activation_code:
forgotten_password_code: NULL
forgotten_password_time: NULL
remember_code: NULL
created_on: 1268889823
last_login: 1474965675
active: 1
first_name: Admin
last_name: istrator
company: ADMIN
phone: 0
1 row in set (0.00 sec)
あとで、このテーブルからデータを抽出する。
コマンドでモデルを生成:
$ php artisan make:model User
Model created successfully.
ファイルapp/User.php
が生成される:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
//
}
app/User.php
最低限の修正を加える:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'users';
/**
* Indicates if the model should be timestamped.
*
* @var bool
*/
public $timestamps = false;
}
table名を設定し、created_at
やupdated_at
といったカラムは今回ないので
$timestamps = false;にする。
今回ログイン画面のコントローラーで使用してみる。
app/Http/Controllers/Auth/LoginController.php
モデルをインポート:
use App\User;
Eloquentモデルの強力なクエリービルダーを使用:
$users = User::all();
foreach ($users as $user) {
echo $user->username;
}
.env
の修正ここまできて、うまくデータベースに接続できない。。接続情報は定義しているのに。。。と思ったが、.env
ファイルの修正が必要だった。
データベースのステージング環境、プロダクション環境などの接続情報を書いておくファイルで、git管理時には、コミットしないファイルとする。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=sample_db
DB_USERNAME=user
DB_PASSWORD=password
これで、データベースから取得したデータが表示されるようになった。