質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2279閲覧

laravel リレーション with句で取得したい

meron88

総合スコア50

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2022/03/03 07:12

編集2022/03/03 07:18

前提・実現したいこと

laravel学習中のものです。リレーションについて勉強しているのですが、
foodInformationsとfoodInformationRowsは一対一で
それらのIDと一致する
foodInformationDetailsとfoodMastersをそれぞれwith句を使用して取得したいと考えているのですが、
リレーションについて知識不足のためか、 エラーも出ず取得ができません。
foodInformationDetailsとfoodMastersには複数行のデータが入る想定です。

知見のある方ご教授いただきたです。よろしくお願いいたします。

foodMastersテーブル

idname
1区分1
2区分2

foodInformationsテーブル

idcodename
1A01みかん

foodInformationRowsテーブル

idfood_info_idfrom_date
112019-01-01

foodInformationDetailsテーブル

idfood_master_idfood_info_idfood_info_row_idprice
1111100
1211200

該当のソースコード

php

1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7use Illuminate\Database\Eloquent\SoftDeletes; 8use App\Models\FoodInformationDetail; 9 10class FoodInformations extends Model 11{ 12 use HasFactory; 13 use SoftDeletes; 14 15 public function foodInformationDetails() 16 { 17 return $this->hasMany(FoodInformationDetail::class, 'food_info_id', 'id'); 18 } 19} 20

php

1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7use Illuminate\Database\Eloquent\SoftDeletes; 8use App\Models\FoodInformationDetail; 9 10class FoodInformationRow extends Model 11{ 12 use HasFactory; 13 use SoftDeletes; 14 15 public function FoodInformationDetails() 16 { 17 return $this->hasMany(FoodInformationDetail::class, 'food_row_id', 'id'); 18 } 19} 20

php

1$query = FoodInformations::query(); 2 3 $query->select(DB::raw( 4 "food_informations.code, 5 food_informations.name, 6 food_information_rows.from_date, 7 " 8 )) 9 ->join('food_information_rows', 'food_informations.id', '=', 'food_information_rows.food_info_id') 10 ->with('foodInformationDetails');

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

select文にidを追加したら取得できました^^;

投稿2022/03/03 07:30

meron88

総合スコア50

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問