0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

laravelメモ

Last updated at Posted at 2020-04-21

view周り

ユーザー認証周りのコード

php artisan make:auth
laravel6,7系だと上記のコードは使用できない

$ composer require laravel/ui
$ php artisan ui vue --auth

代わりに上記のコードを使用する

JavaScriptのパッケージをインストールしてコンパイルするために以下のコードを実行する

$ npm install && npm run dev

テーブルの作成

$ php artisan make:migration create_tablename_table

テーブルの作成してup関数に追加したいカラムなどを記載
down関数に削除したいカラムなどを記載する
作成した後はmodelと関連づけないといけない

モデルの作成

$ php artisan make:model モデル名 -m
$ php artisan migrate

モデルには命名規約がありテーブル名は複数形で命名しないといけなくモデル名にはテーブル名の単数形でないといけない

1対多 hasMany('App/Post');
逆 belongsTo('App/User');
1対1 hasOne
それぞれApp/モデル名っぽい

呼び出された時の処理

app/Http/Middleware/Authenticate.php
use Illuminate\Support\Facades\Auth;
class Authenticate
{
    public function handle($request, Closure $next)
    {
        if (!Auth::check()) { // 非ログインはログインページに飛ばす
            return redirect('/login');
        }
        return $next($request);
    }
}

を作成したapp/Http/Middleware/Authenticate.phpに記述することでログインしていなかったらログイン画面に遷移する

ルートの設定

/routes/web.php
Route::resource('表示したいURL', 'コントローラー名');
php artisan route:listで表示できるコントローラーの一覧が出てくる

コントローラーの作成

$ php artisan make:controller コントローラー名
もしrouteをresourceで書いているなら
$ php artisan make:controller --resource コントローラー名
/app/Http/Controllers/作成したControllerファイル
viewを表示したい時
return view('viewのフォルダ名.bladeより上のファイル名')

view

親となるviewファイルを1つ作成する
私はviews/layouts/index.blade.phpにしました。
子となるフォルダを作成します。これはコントローラーに指定されているviewファイル、子となるファイルにはこのように記述することで、親のファイルの記述をそのまま子にも反映されるようになります

layouts/index.blade.php
<!doctype html>
<html lang="ja">
<head>
 <meta charset="UTF-8">
 <title>Example</title>
</head>
<body>
 <div class="container">
  <h1>親のページです</h1>

  @yield('content')

 </div>

@yield('footer')
</body>
users/index.blade.php(呼び出し側)
@extends('layouts.index')←layoutsフォルダの中にあるindexフォルダ呼び出し

@section('content')←indexフォルダのなかのcontentをのところに記述されるようになる
<h1>子のページです</h1>
@endsection←終了

上記の実行結果
スクリーンショット 2020-04-17 15.06.54.png

コードをスッキリさせることが可能となる

viewにデータベースの内容を表示したい

controller側の処理

UsersController
// 使用するテーブルの記載
use App\User;

public function index()
{
// $usersにUserテーブルにある全レコードを格納
 $users = User::all();
 return view('users.index', compact('users'))
}
//compactは変数名と名前が一致すると自動的に変数として扱ってくれる

view側の処理

index.blade.php
@if($users)
 @foreach($users as $user)
  <p>{{ $user->id }}</p>
  <p>{{ $user->name }}</p>
  <p>{{ $user->email }}</p>
 @endforeach
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?