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

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

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

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

PHP

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

Q&A

解決済

1回答

2178閲覧

PHPで各ユーザーのマイページへ遷移したいが、ログインユーザーのマイページへ遷移してしまう

akito_i

総合スコア3

Laravel

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

PHP

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

0グッド

0クリップ

投稿2020/10/01 11:50

#実装したいこと
phpのlaravelを使って初めてアプリの作成を行っております。
①authを使用してユーザー登録
②登録したユーザー一覧の表示
③ユーザー一覧の中から一人選択すると、選択した人のマイページへ遷移する

以上の流れで実装したいと考えておりまして、
現在③の部分で詰まっております。

#課題
それぞれのユーザー一覧の表示は可能になり、
表示されたユーザーidをクリックするとマイページへ遷移できるようになったのですが、
どのユーザーのidをクリックしても現在ログインしているユーザーのマイページへ遷移してしまいます。

以下にコードを記載させていただきますので、
どこを改善すれば機能するのかご教授いただけたらと存じます。
以上宜しくお願い致します。

コード

web.php(下記のshowがマイページshowListが一覧ページです。)

<?php use Illuminate\Support\Facades\Route; Route::get('/', 'UserController@index')->name("top-page"); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::get('/show/{id}', 'UserController@show')->name('my-page'); Route::get('/edit', 'UserController@edit')->name('edit-page'); Route::get('/showList', 'UserController@showList')->name('edit-page'); Route::post('/update', 'UserController@update');

UserController.php

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; // use App\User; use App\Models\User; use Illuminate\Support\Facades\Auth; class UserController extends Controller { public function index() { $auth = Auth::user(); return view("user.index"); } public function show() { $auth = Auth::user(); return view('user.show',[ 'auth' => $auth ]); } public function showList() { $users = User::all(); return view('user.list',[ 'users' => $users]); } public function edit() { $auth = Auth::user(); return view('user.edit',[ 'auth' => $auth ]); }

list.blade.php

@extends('layouts.app2') @section('content') <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet"> @foreach($users as $user) <table class="table table-bordered"> <thead> <tr> <th style="width:10%">id</th> <th style="width:10%">name</th> <th style="width:10%">age</th> <th style="width:10%">place</th> <th style="width:10%">language</th> </tr> </thead> <tbody> <tr> <th scope="row"><a href="/show/{{$user->id}}">{{$user->id}}</a></th> <td>{{ $user->name }}</td></a> <td>{{ $user->age }}</td> <td>{{ $user->place }}</td> <td>{{ $user->language }}</td> </tr> </tbody> </table> @endforeach @endsection

show.blade.php

@extends('layouts.app') @section('content') <h3 class ="ml-3">{{ Auth::user()->name }}</h3> <div style="margin-top: 30px;"> <table class="table table-striped"> <tr> <th>氏名</th> <td>{{ $auth->name }}</td> </tr> <th>年齢</th> <td>{{ $auth->age }}</td> </tr> <tr> <th>メールアドレス</th> <td>{{ $auth->email }}</td> </tr> <tr> <th>住所(都道府県)</th> <td>{{ $auth->place }}</td> </tr> <tr> <th>言語</th> <td>{{ $auth->language }}</td> </tr> <th>プロフィール</th> <td>{{ $auth->profile }}</td> </tr> </table> </div> <a href="{{ action('UserController@edit') }}"><button class="user-btn">ユーザー登録内容の編集</button></a> </div> </div> @endsection

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

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

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

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

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

guest

回答1

0

ベストアンサー

コード見る限りAuth::userから取得してるのでどこにも「選択したユーザ」を取ろうとしていません。
ルーティングで{id}showに渡しているようですし、そのIDで検索する必要があるのでは。

投稿2020/10/01 11:54

m.ts10806

総合スコア80875

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

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

akito_i

2020/10/01 13:50

ご回答ありがとうございます。 Auth::userとするのではなく、show.blade.phpのファイルに show/{id}の{id]に紐づいた情報をDBから引っ張ってこれるような 記述をするという認識でよろしいのでしょうか? 知識が乏しくお手数おかけしますが、 ご教授いただけたらと思います。
m.ts10806

2020/10/01 13:52

bladeはあくまでVIEWですし、フレームワークにおいてビジネスロジックやデータアクセスを書くところは決まっているかと思いますが。。。
m.ts10806

2020/10/01 13:53

今回の回答でピンとこないということは、Laravelを利用する以前に覚えるべきことがたくさんありそうです。
akito_i

2020/10/01 14:20

コントローラーのshowの引数に$idを渡したら上手くいきました。 確かに分からないことが多すぎるので精進致します。 改めてご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問