①studentsというデータベースを作成
②データベースにダミーデータ投入
③studentsのデータベース情報をwebに表示する
命名規則
モデル ⇒ Student.php
コントローラー ⇒ StudentsController.php
ビューのフォルダ ⇒ student
モデルの作成
artisan コマンド実行
php artisan make:model Student
カラムの宣言
# vi app/Student.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Student extends Model
{
//
public $timestamps = false; //timesatampを利用しない
protected $fillable = ['name', 'email','tel'];
}
仮データ投入
シーダ機能を用いる
php artisan make:seed StudentsTableSeeder
シーダファイルの編集
ダミーの名前を付与する。(便利だわ)
vi database/seeds/StudentsTableSeeder.php
vi database/seeds/StudentsTableSeeder.php
<?php
use Illuminate\Database\Seeder;
class StudentsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('students')->delete();
$faker = Faker\Factory::create('ja_JP');
for ($i = 0; $i < 10; $i++) {
\App\Student::create([
'name'=> $faker->name(),
'email'=> $faker->email(),
'tel'=> $faker->phoneNumber()
]);
}
}
}
データベースにダミーデータを投入
php artisan db:seed --class=StudentsTableSeeder
ルーティング設定
vi router/web.php
Route::get('/student/list','StudentsController@getIndex');
コントローラの作成
artisanコマンドでコントローラのスケルトンを作成。
php artisan make:controller StudentsController
コントローラで表示先を指定する。(student.list)
vi app/Http/Controllers/StudentsController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class StudentsController extends Controller
{
//
public function getIndex()
{
$query = \App\Student::query();
// 全件取得 +ページネーション
$students = $query->orderBy('id','desc')->paginate(10);
return view('student.list')->with('students',$students);
}
}
Viewを作成
Bladeを利用して作成します。
親テーマ作成
三種類のファイルを作成します。
mkdir resources/views/layouts/partials
① vi resources/views/layouts/partials/header.blade.php
ources/views/layouts/partials/header.blade.php!-- header & grobal navi -->
<nav class="navbar navbar-default" style="background-color: #FFFFFF;">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbarEexample2">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">
<img alt="Laravel学習帳" src="/img/logo.png" style="height: 20px;">
</a>
</div>
<div class="collapse navbar-collapse" id="navbarEexample2">
<ul class="nav navbar-nav">
<li class="active"><a href="#">menuA</a></li>
<li><a href="#">menuB</a></li>
<li><a href="#">menuC</a></li>
</ul>
</div>
</div>
</nav>
② vi resources/views/layouts/partials/sidebar.blade.php
<!-- side bar -->
<div class="panel panel-default">
<div class="panel-heading">
Menu
</div>
<!-- <div class="panel-body"> -->
<ul class="nav nav-pills nav-stacked">
<li><a href=""><i class="glyphicon glyphicon-menu-right"></i> submenu1</a></li>
<li><a href=""><i class="glyphicon glyphicon-menu-right"></i> submenu2</a></li>
<li><a href=""><i class="glyphicon glyphicon-menu-right"></i> submenu3</a></li>
<li><a href=""><i class="glyphicon glyphicon-menu-right"></i> submenu4</a></li>
</ul>
<!-- </div> -->
</div>
③vi resources/views/layouts/partials/footer.blade.php
<!-- footer -->
<footer class="footer">
<div class="container">
<p class="text-muted">Place sticky footer content here.</p>
</div>
</footer>
~
Student表示用の子テーマを作成
mkdir resources/views/student/
vi resources/views/student/list.blade.php
@extends('layouts.layout')
@section('title', 'Tutrial for beginner')
@section('content')
<div class="page-header" style="margin-top:-30px;padding-bottom:0px;">
<h1><small>受講生一覧</small></h1>
</div>
<table class="table table-striped table-hover">
<thead>
<tr>
<th>No</th>
<th>name</th>
<th>email</th>
<th>tel</th>
<th>opration</th>
</tr>
</thead>
<tbody>
@foreach($students as $student)
<tr>
<td>{{$student->id}}</td><td>{{$student->name}}</td><td>{{$student->email}}</td><td>{{$student->tel}}</td>
<td>
<a href="" class="btn btn-primary btn-sm">詳細</a>
<a href="" class="btn btn-primary btn-sm">編集</a>
<a href="" class="btn btn-danger btn-sm">削除</a>
</td>
</tr>
@endforeach
</tbody>
</table>
<!-- page control -->
{!! $students->render() !!}
@endsection