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

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

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

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

PHP

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

Q&A

解決済

2回答

1850閲覧

投稿者の名前を表示させたい。

YTKM

総合スコア22

Laravel

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

PHP

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

0グッド

0クリップ

投稿2022/08/04 22:48

現状

laravel初心者です。
自作で情報投稿サイトを作成しています。
投稿者の名前のみ表示させたいのですが、optional(Auth::user())->name、と記述しているせいか、全ての投稿がログイン中のユーザー名になってしまいます。
リレーションもしていて、user_idに紐ずく名前を表示させたいのですが、その方法が分かりません。
分かる方居ましたらお願い致します。

画面

Image from Gyazo

Image from Gyazo

DB

Image from Gyazo

Image from Gyazo

コード

php

1@extends('layouts.app') 2 3@section('content') 4<!DOCTYPE html> 5<html lang="ja"> 6<head> 7 <meta charset="UTF-8"> 8 <link rel="stylesheet" href="public/css/content.css"> 9</head> 10<body> 11 <div class="container-fluid"> 12 <div class="row"> 13 <div class="col no-gutters"> 14 <img class="img-fluid" src="iStock-1163221036.jpg"> 15 </div> 16 </div> 17 </div> 18 19 <div class="container"> 20 <div class="row justify-content-center"> 21 22 <div class="col-12"> 23 <div class="card-body"> 24 @if (session('status')) 25 <div class="alert alert-success" role="alert"> 26 {{ session('status') }} 27 </div> 28 @endif 29 </div> 30 </div> 31 32 <div class="card" style="width: 35rem;"> 33 <div class="card text-center"> 34 <div class="p-3"> 35 36 @foreach($contents as $content) 37 38 <h5 class="card-title"> {{ optional(Auth::user())->name }}</h5> 39 40 <div class="card-body"> 41 <p class="card-text">店名</p> 42 <div class="form-group"> 43 <textarea class="form-control" name="shop" rows="5"> 44 {{ optional($content)->shop }} 45 </textarea> 46 </div> 47 </div> 48ーー以下省略ーー 49

php

1<?php 2 3namespace App\Http\Controllers; 4 5use Illuminate\Http\Request; 6 7use App\Models\Sauna; 8use App\Models\User; 9use Illuminate\Support\Facades\DB; 10use Illuminate\Support\Facades\Auth; 11 12class SaunaController extends Controller 13{ 14 /** 15 * Display a listing of the resource. 16 * 17 * @return \Illuminate\Http\Response 18 */ 19 public function index() 20 { 21 $contents = DB::table('saunas') 22 ->select('shop', 'hot', 'ice', 'chill', 'article', 'user_id') 23 ->get(); 24 return view('saunas.sauna', compact('contents')); 25 26 } 27 28 /** 29 * Show the form for creating a new resource. 30 * 31 * @return \Illuminate\Http\Response 32 */ 33 public function create() 34 { 35 return view('saunas.create'); 36 } 37 38 /** 39 * Store a newly created resource in storage. 40 * 41 * @param \Illuminate\Http\Request $request 42 * @return \Illuminate\Http\Response 43 */ 44 public function store(Request $request) 45 { 46 47 $sauna = new Sauna; 48 49 $sauna->shop = $request->input('shop'); 50 $sauna->hot = $request->input('hot'); 51 $sauna->ice = $request->input('ice'); 52 $sauna->chill = $request->input('chill'); 53 $sauna->article = $request->input('article'); 54 $sauna->user_id = $request->user()->id; 55 56 57 $sauna->save(); 58 59 return redirect('/home'); 60 61 // dd($shop, $sauna); 62 } 63 64 /** 65 * Display the specified resource. 66 * 67 * @param int $id 68 * @return \Illuminate\Http\Response 69 */ 70 public function show($id) 71 { 72 // 73 } 74 75 /** 76 * Show the form for editing the specified resource. 77 * 78 * @param int $id 79 * @return \Illuminate\Http\Response 80 */ 81 public function edit($id) 82 { 83 // 84 } 85 86 /** 87 * Update the specified resource in storage. 88 * 89 * @param \Illuminate\Http\Request $request 90 * @param int $id 91 * @return \Illuminate\Http\Response 92 */ 93 public function update(Request $request, $id) 94 { 95 // 96 } 97 98 /** 99 * Remove the specified resource from storage. 100 * 101 * @param int $id 102 * @return \Illuminate\Http\Response 103 */ 104 public function destroy($id) 105 { 106 // 107 } 108} 109

php

1<?php 2 3namespace App\Models; 4 5use Illuminate\Contracts\Auth\MustVerifyEmail; 6use Illuminate\Database\Eloquent\Factories\HasFactory; 7use Illuminate\Foundation\Auth\User as Authenticatable; 8use Illuminate\Notifications\Notifiable; 9use Laravel\Sanctum\HasApiTokens; 10 11class User extends Authenticatable 12{ 13 use HasApiTokens, HasFactory, Notifiable; 14 15 /** 16 * The attributes that are mass assignable. 17 * 18 * @var array<int, string> 19 */ 20 21 public function saunas() 22 { 23 return $this->hasMany('App\Sauna'); 24 } 25 26 27 protected $fillable = [ 28 'name', 29 'sub_name', 30 'lastname', 31 'sub_lastname', 32 'tel', 33 'email', 34 'password', 35 ]; 36 37 /** 38 * The attributes that should be hidden for serialization. 39 * 40 * @var array<int, string> 41 */ 42 protected $hidden = [ 43 'password', 44 'remember_token', 45 ]; 46 47 /** 48 * The attributes that should be cast. 49 * 50 * @var array<string, string> 51 */ 52 protected $casts = [ 53 'email_verified_at' => 'datetime', 54 ]; 55} 56

php

1<?php 2 3namespace App\Models; 4 5use Illuminate\Database\Eloquent\Factories\HasFactory; 6use Illuminate\Database\Eloquent\Model; 7 8class Sauna extends Model 9{ 10 11 public function user() { 12 return $this->belongsTo('App\User'); 13 } 14 15 16 17 18} 19

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

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

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

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

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

guest

回答2

0

ベストアンサー

php

1use App\Models\Sauna; 2 3class SaunaController extends Controller 4{ 5 /** 6 * Display a listing of the resource. 7 * 8 * @return \Illuminate\Http\Response 9 */ 10 public function index() 11 { 12 $saunas = Sauna::query() 13 ->with(['user']) 14 ->get(); 15 return view('saunas.sauna', compact('saunas')); 16 } 17}

php

1 2class Sauna extends Model 3{ 4 5 public function user() { 6 return $this->belongsTo('App\Models\User'); 7 } 8}

php

1 2 @foreach($saunas as $sauna) 3 4 <h5 class="card-title"> {{ optional(Auth::user())->name }}</h5> 5 6 <div class="card-body"> 7 <p class="card-text">店名</p> 8 <div class="form-group"> 9 <textarea class="form-control" name="shop" rows="5"> 10 {{ sauna->shop }} 11 </textarea> 12 </div> 13 </div> 14 <p>{{ $sauna->user->name }}</p> 15 @endforeach

投稿2022/08/04 23:42

編集2022/08/04 23:54
phper.k

総合スコア3923

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

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

0

ありがとうございます。
投稿者の名前表示できました。

投稿2022/08/05 00:58

YTKM

総合スコア22

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問