つばさのWebメモです。実務・個人開発で調べた本当に素のメモなので、ご活用ください。 アドバイスや間違いの指摘など遠慮なさらず、DMなどでドンドンください!改善します😘(→ @basabasa8770)
▼目次▼
基本的にはLaravelではコレクション⇄配列のやりとりを基本とする(DBとのやりとりがあるため、大量の配列を丸ごと渡したがる。)
Laravel6〜はVueが標準で入らなくなった
Laravelのバッチ処理の大まかな流れが書いてあってわかりやすい
$comments = Comment::orderBy('id', 'DESC')->take(10)->get();
this
はモデルのプロパティを指す
リレーションを取りたい場合にはuser()→id
ではなく、user→id
LaravelでGmailを使う
Docker×Laravel環境で、Gmailを メールサーバーとして使用する
Eloquetのfillableはデータをinsertできるものを指定できるだけ(そもそもテーブルがあれば、updateやreadはできる)
Laravelでトランザクションしたい
【Laravel】transactionメソッド - Qiita
withPivot(‘カラム名’)
で中間テーブルのカラムを取得できるLaravel リレーション 中間テーブルのカラム取得 withPivot()
【Laravel】DB登録値取得時のfind()、get()、first()の返り値早見表 - Qiita
関係 | 主 | 従 |
---|---|---|
一対一 | hasOne従 | belongTo主 |
一対多 | hasMany従 | belongTo主 |
多対多 | belongMany中間テーブル | belongMany中間テーブル |
// 先輩が書いたコード
public function societyEvents(EventRequest $request, Society $society, SocietyContract $societyContract): AnonymousResourceCollection
{
$eventIds = SocietyContractPlanEvent::where('society_contract_id', $societyContract->id)
->whereHas('plan', function ($query) use ($societyContract) {
$query
->where('society_contract_type_id', $societyContract->society_contract_type_id)
->where('product_type', 1)
->where('delflag', "0");
})->pluck('event_id');
return EventResource::collection(
Event::whereIn('eventno', $eventIds)->get()
);
}
// 自分が書いたコード
public function societyEvents(EventRequest $request, Society $society, SocietyContract $societyContract): AnonymousResourceCollection
{
$societyContractTypeId = SocietyContract::where('id', $societyContract->id)->pluck('society_contract_type_id');
$planIds = Plan::whereIn('society_contract_type_id', $societyContractTypeId)->where('product_type', 1)->pluck('id');
$societycontractplaneventIds = SocietyContractPlanEvent::whereIn('plan_id', $planIds)->pluck('event_id');
$events = Event::whereIn('eventno', $societycontractplaneventIds)->get();
return EventResource::collection($events);
}