Laravel入門トップページ


目次

  1. Composerのダウンロードとインストール
  2. コメント掲示板を作成してみよう
  3. リレーションシップを使いこなそう
    1. 概要
    2. Laravelプロジェクトの作成と初期設定
    3. 一対多のリレーションシップ
    4. 多対多のリレーションシップ
    5. ビューを使った表示
    6. 学部の情報を表示・変更する
    7. キャンパスの情報を表示・変更・削除する
    8. 学生の情報を表示・変更・削除する
  4. ユーザ認証の機能を実現しよう
  5. マルチ認証の機能を実現しよう
  6. MongoDB に接続しよう
  7. キューを利用しよう
  8. コマンド(コンソール)を利用しよう
  9. 本番環境にデプロイしよう

リレーションシップを使いこなそう

ビューを使った表示

目次に戻る

トップページ

トップページ (resouces/views/welcome.blade.php) にはアプリケーションのタイトルを入力し,各エンティティへのリンクを設置する.また,ログインに関連するリンクは削除しておく.

resouces/views/welcome.blade.php (抜粋)
<body>
    <div class="flex-center position-ref full-height">
        <div class="content">
            <div class="title m-b-md">
                 Laravel Relationship
            </div>

            <div class="links">
                <a href="/campuses">キャンパス</a>
                <a href="/faculties">学部</a>
                <a href="/students">学生</a>
                <a href="/lectures">講義</a>
            </div>
        </div>
    </div>
</body>
welcome-1

目次に戻る

キャンパス一覧

キャンパス一覧ページのビューを作成しよう.まず,CampuasesController を編集し,コントローラからビューを呼び出すように変更する.

app/Http/Controllers/CampusesController.php (抜粋)
public function index()
{
  $campuses = Campus::get();
  return view('campuses.index')
          ->with('campuses', $campuses);
}

次に,ビューの雛形を作成する.resouces/view フォルダ以下に,campuses フォルダを作成し,index.blade.php を設置する.index.blade.php には次のようなコードを記述する.

resources/views/campuses/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>キャンパス一覧</title>
</head>
<body>
    <h1>キャンパス一覧</h1>
</body>
</html>
campus-1

キャンパスの一覧を箇条書きで表示するために,index.blade.php を次のように変更する.

resources/views/campuses/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>キャンパス一覧</title>
</head>
<body>
    <h1>キャンパス一覧</h1>
    <ul>
        @foreach ($campuses as $campus)
            <li>{{ $campus->campus }}</li>
        @endforeach
    </ul>
</body>
</html>
campus-2

各キャンパスに所属する学部の一覧を表示しよう.app/Campus.php で学部一覧を取得する faculties メソッドを記述しているので,それを呼び出すだけで良い.

resources/views/campuses/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>キャンパス一覧</title>
</head>
<body>
    <h1>キャンパス一覧</h1>
    <ul>
        @foreach ($campuses as $campus)
            <li>{{ $campus->campus }}</li>
            <ul>
                @foreach ($campus->faculties as $faculty)
                    <li>{{ $faculty->faculty }}</li>
                @endforeach
            </ul>
        @endforeach
    </ul>
</body>
</html>
campus-3

目次に戻る

学部一覧

学部一覧ページのビューを作成しよう.まず,FacultiesController を編集し,コントローラからビューを呼び出すように変更する.

app/Http/Controllers/FacultiesController.php (抜粋)
public function index()
{
  $faculties = Faculty::get();
  return view('faculties.index')
          ->with('faculties', $faculties);
}

次に,ビューを作成する.resouces/view フォルダ以下に,faculties フォルダを作成し,index.blade.php を設置する.index.blade.php には次のようなコードを記述する.

resources/views/faculties/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>学部一覧</title>
</head>
<body>
    <h1>学部一覧</h1>
    <ul>
        @foreach ($faculties as $faculty)
            <li>{{ $faculty->faculty }}</li>
        @endforeach
    </ul>
</body>
</html>
faculty-1

次に,設置年度と所属キャンパスも取得して表示しよう.index.blade.php を次のように変更すれば良い.

resources/views/faculties/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>学部一覧</title>
</head>
<body>
    <h1>学部一覧</h1>
    <ul>
        @foreach ($faculties as $faculty)
            <li>{{ $faculty->faculty }}は{{ $faculty->established }}年に設置され,キャンパスは {{ $faculty->campus->campus }} です</li>
        @endforeach
    </ul>
</body>
</html>
faculty-2

目次に戻る

学生一覧

学生一覧ページのビューを作成しよう.まず,StudentsController を編集し,コントローラからビューを呼び出すように変更する.

app/Http/Controllers/StudentsController.php (抜粋)
public function index()
{
  $students = Student::get();
  return view('students.index')
          ->with('students', $students);
}

次に,ビューを作成する.resouces/view フォルダ以下に,students フォルダを作成し,index.blade.php を設置する.index.blade.php には次のようなコードを記述する.

resources/views/students/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>学生一覧</title>
</head>
<body>
    <h1>学生一覧</h1>
    <ul>
        @foreach ($students as $student)
            <li>{{ $student->id }} : {{ $student->name }}</li>
        @endforeach
    </ul>
</body>
</html>
student-1

次に,履修講義も取得して表示しよう.index.blade.php を次のように変更すれば良い.

resources/views/students/index.blade.php
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>学生一覧</title>
</head>
<body>
    <h1>学生一覧</h1>
    <ul>
        @foreach ($students as $student)
            <li>{{ $student->id }} : {{ $student->name }}</li>
             <ul>
                @foreach ($student->lectures as $lecture)
                    <li>{{ $lecture->name }}</li>
                @endforeach
            </ul>
        @endforeach
    </ul>
</body>
</html>
student-2

目次に戻る

講義一覧

やり方は学生一覧とほぼ同様です.次のような結果が表示されるようにコントローラをとビューに記述しよう.

lecture-1

目次に戻る