
じろう
2019年11月02日に参加
学習履歴詳細
[Laravel]リレーションのコード追う、課題アプリ作成を進める(ユーザー登録・ログイン)
今日のYWT
やったこと
Laravel
リレーションのコードを追う
- 画像の複数アップロードで使われてたコードを元にメンターさんにどういう意味なのかを聞く
- それを聞いた上で、仮説を立て、Techpit教材で使われていた
use Illuminate\Database\Eloquent\Relations\BelongsTo;
の謎を解く
Travelog
- 記事一覧機能実装
- ユーザー登録機能実装
- ログイン・ログアウト機能実装
- GitHubでイシューテンプレート作成
わかったこと
Laravelのリレーション
<?php namespace App; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; class Article extends Model { public function user(): BelongsTo { return $this->belongsTo('App\User'); } }
user();
メソッド内のreturn $this->belongsTo('App\User');
が、リレーションを実現している
Railsでいう以下のコードと「ほぼ」同じ?
class Article < ApplicationRecord belongs_to :user end
違うところは、user()
は関連付けるための設定を記載したメソッドで、呼び出せば関連付けられたEloquent
を呼び出せる
また、use Illuminate\Database\Eloquent\Relations\BelongsTo;
はTechpit
の教材にしか見当たらず、他のリレーション系の記事にはなかった。
調べたところ、これは戻り値の型宣言を行うために必要で、これをすることでuser(): BelongsTo
の: BelongsTo
が使えるようになり、
戻り値がBelongsTo
型以外であればTypeError
を返すようにしている。
photos()
は関連付けるために使え、関連付け設定を記載しているメソッドphoto
は関連づいているデータを取得するための書き方で、 動的プロパティと呼ばれる
次やること
- Travelog実装を進める
- メンターさんに聞きたいことまとめる
PHP
Docker
Laravel
2020年10月13日(火)
5.8時間