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

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。