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

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

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

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

PHP

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

Q&A

解決済

1回答

419閲覧

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

yoshioka01

総合スコア21

Laravel

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

PHP

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

0グッド

0クリップ

投稿2022/01/17 06:10

やりたいこと・現状

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

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

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

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

コード

AccontController.php

php

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

userdetail.php

php

1@extends('layouts.app') 2 3@section('content') 4<div class="container"> 5 <div class="row justify-content-center"> 6 <div class="col-md-8"> 7 <div class="card"> 8 <table class="table"> 9 10 <h1>プロフィール</h1> 11 <h3 class="profile"><i class="fas fa-user-alt"></i> 基本情報</h3> 12 @foreach($users as $user) 13 <p>名前 : {{ $user['name'] }}</p> 14 <p>メールアドレス : {{ $user['email'] }}</p> 15 @endforeach 16 17 <h3 class="profile"><i class="fas fa-key"></i> ユーザ権限</h3> 18 <p>現在の権限 : 19 @if($user->role ==='admin-higher') 20 管理者 21 @else 22 一般ユーザー 23 @endcan 24 </p> 25 26 27 <form method = 'POST' action = "/account/{{ $user['id'] }}" id = 'account-form'> 28 @csrf 29 <button type="submit" class="btn btn-danger" >管理者にする</button> 30 </form> 31 32 <form method = 'POST' action = "/accountdelete/{{ $user['id'] }}" id = 'accountdelete-form'> 33 @csrf 34 <button type="submit" class="btn btn-danger" >管理者削除する</button> 35 </form> 36 37 <h3 class="profile"><i class="fas fa-film"></i> 研修一覧</h3> 38 39 <table class="table table-striped table-hover"> 40 41 <tr> 42 <th scope="col">CheckBox</th> 43 <th scope="col">タイトル</th> 44 <th scope="col">更新日付</th> 45 <th >削除ボタン</th> 46 </tr> 47 </thead> 48 @foreach($memos AS $memo) 49 <tbody> 50 <tr> 51 <th scope="row"> 52 @if($memo->users()->where('user_id', Auth::id())->exists()) 53 <i id = 'check-icon' class="far fa-check-square"></i> 54 @endif 55 </th> 56 <td> 57 <a href = "/content/{{ $memo['id'] }}" id="memo-title"> 58 {{ $memo['title'] }} 59 </a> 60 </td> 61 <td> 62 {{ $memo['updated_at'] }} 63 </td> 64 65 <td> 66 <!-- 削除ボタン--> 67 @can('admin-higher') 68 <form method = 'POST' action = "/delete/{{ $memo['id'] }}" id = 'delete-form'> 69 @endcan 70 @csrf 71 <button><i id = 'delete-button' class = "fas fa-trash"></i></button> 72 </form> 73 </td> 74 </tr> 75 </tbody> 76 @endforeach 77 78 79 </table> 80 81 </table> 82 83 <a href ='/userlist' class="btn btn-primary btn-lg" style ='width:90px'>戻る</a> 84 85 </div> 86 </div> 87</div> 88@endsection 89

web.php

php

1 2 // 管理者以上 3 Route::group(['middleware' => ['auth', 'can:admin-higher']], function () { 4 Route::get('/newpost', 'AccountController@newpost')->name('newpost'); 5 Route::get('/create', 'AccountController@create')->name('create'); 6 Route::post('/store', 'AccountController@store')->name('store'); 7 Route::get('/edit/{id}', 'AccountController@edit')->name('edit'); 8 Route::post('/update/{id}', 'AccountController@update')->name('update'); 9 Route::post('/delete/{id}', 'AccountController@delete')->name('delete'); 10 Route::get('/userlist', 'FavoriteController@userlist')->name('userlist'); 11 Route::get('/userdetail/{id}', 'AccountController@userdetail')->name('userdetail'); 12 Route::post('/account/{id}', 'AccountController@account')->name('accout'); 13 Route::post('/accountdelete/{id}', 'AccountController@accountdelete')->name('accoutdelete'); 14 15 16 });

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

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

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

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

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

guest

回答1

0

ベストアンサー

綴りはあっていますか?
補足情報には「admin-highter」とありますが、コード上は「admin-higher」になっています

投稿2022/01/20 12:00

sy-mol

総合スコア11

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

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

yoshioka01

2022/01/27 15:31

綴りが間違っていたようです、注意して改善します
sy-mol

2022/01/28 06:58

解決したようでよかったです!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問