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

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

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

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

PHP

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

Q&A

2回答

2356閲覧

Undefined constant エラーになってしまう

lara

総合スコア0

Laravel

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

PHP

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

0グッド

0クリップ

投稿2022/09/09 08:32

編集2022/09/09 09:02

前提

Laravelでマッチングアプリを作っています。
スワイプ画面に表示されるユーザーを自分が男の場合は女性を表示し、女の場合は男性を表示したいのですが、実装中に定数が未定義というエラーメッセージが発生しました。

実現したいこと

  • 未定義定数のエラー対処

発生している問題・エラーメッセージ

Undefined constant Illuminate\Support\Facades\Auth::gender

該当のソースコード

Laravel

1/** 2 * Show the application dashboard. 3 * 4 * @return \Illuminate\Contracts\Support\Renderable 5 */ 6 public function index() 7 { 8 $users = Auth::user(); 9 10 if(Auth::gender === 0) { 11 $target_gender = 1; 12 } 13 14 if(Auth::gender === 1) { 15 $target_gender = 0; 16 } 17 18 $target = DB::table('users')->where('gender',$target_gender)->get(); 19 20 $userCount = $users->count(); 21 $from_user_id = Auth::id(); 22 23 return view('home', compact('users', 'userCount', 'from_user_id', 'target')); 24 25 } 26}

試したこと

use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Auth;
の2つのコードの付け足し

補足情報(FW/ツールのバージョンなど)

Laravel 8
PHP 8.1.9
いくら調べてもどこにどのようにして定義のコードを書けばいいのかわかりませんでした。
初めて質問するので失礼や質問の仕方に間違いがあったら申し訳ありません。
どうかよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

diff

1/** 2 * Show the application dashboard. 3 * 4 * @return \Illuminate\Contracts\Support\Renderable 5 */ 6 public function index() 7 { 8- $users = Auth::user(); // ログインユーザーは一人なので、複数形で命名するのはナンセンス 9+ $user = Auth::user(); 10 11- if(Auth::gender === 0) { 12+ if($user->gender === 0) { 13 $target_gender = 1; 14 } 15 16- if(Auth::gender === 1) { 17+ if($user->gender === 1) { 18 $target_gender = 0; 19 } 20 21- $target = DB::table('users')->where('gender',$target_gender)->get(); 22+ $target = User::where('gender',$target_gender)->get(); 23 24- $userCount = $users->count(); // ログインユーザー(一人なのに)からカウントする意味わからない 25- $from_user_id = Auth::id(); 26+ $from_user_id = $user->id(); // $user = Auth::user(); で $user に代入しているのに、Auth::id() 使う意味ない 27 28 return view('home', compact('users', 'userCount', 'from_user_id', 'target')); 29 30 } 31}

投稿2022/09/09 10:13

phper.k

総合スコア3923

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

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

0

そもそもAuthに直接genderを定義するのは無理がある気がします。

参考)
https://helog.jp/laravel/add-column-users/

こんな感じでユーザテーブルを拡張して性別情報を追加する必要があると思います。
性別にアクセスする場合はAuth::user()->genderみたいな感じでしょうか。

投稿2022/09/09 09:02

AbeTakashi

総合スコア4537

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問