演習課題「Player一覧にvitalityを表示する」
右の環境には、MySQLからplayersテーブルとJobsテーブルのデータを表示するプログラムが、PHPとEloquentで作成してあります。
これを修正して、Jobsテーブルのvitalityカラムを追加表示してください。
採点して、すべてのジャッジに正解すれば、演習課題クリアです!
#05:Eloquentでテーブルを連結してデータを取り出す
ここでは、Eloquentでテーブルを連結してデータを取り出す方法を学習します。 サンプルデータベースで、「players」テーブルの「job_id」と「jobs」テーブルの「id」を関連付けします。
public_html/sql.php<?php
require_once './vendor/autoload.php';
$db = new Illuminate\Database\Capsule\Manager;
$db->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'mydb',
'username' => 'root',
'password' => ''
]);
$db->setAsGlobal();
$db->bootEloquent();
use Illuminate\Database\Eloquent\Model;
class Player extends Model {
public $timestamps = false;
public function job() {
return $this->belongsTo('Job');
}
}
class Job extends Model {
}
$players = Player::all();
$message = 'hello world';
require_once 'views/content.tpl.php';
public_html/views/content.tpl.php<!DOCTYPE html>
<html lang='ja'>
<?php include('header.inc.php'); ?>
<body>
<h1><?= $message ?></h1>
<?php foreach ($players as $player) { ?>
<p>
<?= $player->id ?>,
<?= $player->name ?>,
<?= $player->level ?>,
<?= $player->job->job_name ?>
</p>
<?php } ?>
<?php include('footer.inc.php'); ?>
</body>
</html>
- PHP: 名前空間の使用法: エイリアス/インポート - Manual
http://php.net/manual/ja/language.namespaces.importing.php
- 5分で理解するPHPのnamespaceとuseの使い方 | Code & Business
https://remotestance.com/blog/3064/
- Eloquent:リレーション 5.6 Laravel
https://readouble.com/laravel/5.6/ja/eloquent-relationships.html
- Laravelでの基本的なリレーションシップもしくはJOIN - Qiita
https://qiita.com/zaburo/items/d665804f8ea850502c64
- Eloquentでリレーションを作成する方法 - Qiita
https://qiita.com/asaokamei/items/ce87090c155d7b4d7f6d