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

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

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

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

PHP

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

解決済

ユーザーの状態が管理者かどうか確認する

yoshioka01
yoshioka01

総合スコア21

Laravel

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

PHP

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

1回答

0評価

0クリップ

216閲覧

投稿2022/01/17 06:10

やりたいこと・現状

/userdetail/{id}ページを開くとuserテーブルのroleによって「管理者」or「一般」を判断したいです

現状はユーザーの下記のようなコードを書いているのですが、どのユーザーも「一般」として表示されてしまいます

補足情報
role = 1
管理者(admin-highter)

role = 10
ユーザー(user-highter)

コード

AccontController.php

php

public function userdetail($id){ $users = User::where('id',$id)->get(); $memos = Memo::where('status',1)->get(); //user_idと$users[id]が一致していたらcountする return view('userdetail',compact('users','memos')); }

userdetail.php

php

@extends('layouts.app') @section('content') <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card"> <table class="table"> <h1>プロフィール</h1> <h3 class="profile"><i class="fas fa-user-alt"></i> 基本情報</h3> @foreach($users as $user) <p>名前 : {{ $user['name'] }}</p> <p>メールアドレス : {{ $user['email'] }}</p> @endforeach <h3 class="profile"><i class="fas fa-key"></i> ユーザ権限</h3> <p>現在の権限 : @if($user->role ==='admin-higher') 管理者 @else 一般ユーザー @endcan </p> <form method = 'POST' action = "/account/{{ $user['id'] }}" id = 'account-form'> @csrf <button type="submit" class="btn btn-danger" >管理者にする</button> </form> <form method = 'POST' action = "/accountdelete/{{ $user['id'] }}" id = 'accountdelete-form'> @csrf <button type="submit" class="btn btn-danger" >管理者削除する</button> </form> <h3 class="profile"><i class="fas fa-film"></i> 研修一覧</h3> <table class="table table-striped table-hover"> <tr> <th scope="col">CheckBox</th> <th scope="col">タイトル</th> <th scope="col">更新日付</th> <th >削除ボタン</th> </tr> </thead> @foreach($memos AS $memo) <tbody> <tr> <th scope="row"> @if($memo->users()->where('user_id', Auth::id())->exists()) <i id = 'check-icon' class="far fa-check-square"></i> @endif </th> <td> <a href = "/content/{{ $memo['id'] }}" id="memo-title"> {{ $memo['title'] }} </a> </td> <td> {{ $memo['updated_at'] }} </td> <td> <!-- 削除ボタン--> @can('admin-higher') <form method = 'POST' action = "/delete/{{ $memo['id'] }}" id = 'delete-form'> @endcan @csrf <button><i id = 'delete-button' class = "fas fa-trash"></i></button> </form> </td> </tr> </tbody> @endforeach </table> </table> <a href ='/userlist' class="btn btn-primary btn-lg" style ='width:90px'>戻る</a> </div> </div> </div> @endsection

web.php

php

// 管理者以上 Route::group(['middleware' => ['auth', 'can:admin-higher']], function () { Route::get('/newpost', 'AccountController@newpost')->name('newpost'); Route::get('/create', 'AccountController@create')->name('create'); Route::post('/store', 'AccountController@store')->name('store'); Route::get('/edit/{id}', 'AccountController@edit')->name('edit'); Route::post('/update/{id}', 'AccountController@update')->name('update'); Route::post('/delete/{id}', 'AccountController@delete')->name('delete'); Route::get('/userlist', 'FavoriteController@userlist')->name('userlist'); Route::get('/userdetail/{id}', 'AccountController@userdetail')->name('userdetail'); Route::post('/account/{id}', 'AccountController@account')->name('accout'); Route::post('/accountdelete/{id}', 'AccountController@accountdelete')->name('accoutdelete'); });

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel

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

PHP

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