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

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

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

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

PHP

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

Q&A

解決済

1回答

1071閲覧

laravel-enumをif文の比較に使いたい

ttpk

総合スコア338

Laravel

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

PHP

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

0グッド

0クリップ

投稿2022/09/02 15:48

編集2022/09/02 15:52

前提

Laravel v8.83.23 に
"bensampo/laravel-enum": "^4.2"
をインストールして使用しています

実現したいこと

  • laravel-enumをif文の比較に使用する

該当のソースコード

bensampo/laravel-enumのライブラリを使用して
以下のenumを作成しました

php

1<?php 2 3namespace App\Enums; 4 5use BenSampo\Enum\Enum; 6 7final class UnfollowFlg extends Enum 8{ 9 const UNFOLLOW_NEEDLESS = 0; 10 const UNFOLLOW_NEED = 1; 11 12 public static function getDescription($value): string 13 { 14 switch ($value){ 15 case self::UNFOLLOW_NEEDLESS: 16 return 'アンフォロー不要'; 17 brake; 18 case self::UNFOLLOW_NEED: 19 return 'アンフォロー対象'; 20 brake; 21 default: 22 return self::getKey($value); 23 } 24 } 25 26 public static function getValue(string $key) 27 { 28 switch ($key){ 29 case 'アンフォロー不要': 30 return 0; 31 case 'アンフォロー対象': 32 return 1; 33 default: 34 return parent::getValue($key); 35 } 36 } 37} 38?>

そのenumを
namespace App\Console\Commands
配下のクラスでif文の条件にしようとしています

PHP

1 $unfollow_check = makeUnfollowCheckClass::makeUnfollowCheck($twitterToken->twitter_account_id, $targetId); 2 Log::debug($unfollow_check); 3 if ($unfollow_check->is(UnfollowFlg::getValue('アンフォロー対象'))) { 4 Log::debug('到達確認'); 5 self::callUnfollowApi($twitter, $unfollowJob->id, $targetId, $twitterToken->twitter_account_id); 6 }

Log::debug($unfollow_check);
には1が出力されてるのでif文の処理の中に入る想定ですが
Log::debug('到達確認');
は出力されていません。
enumをif文の条件に使用することは可能でしょうか?

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

Laravel v8.83.23
PHP v7.4.18

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

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

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

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

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

guest

回答1

0

自己解決

Enumを使わずにtrueで比較するようにしました

PHP

1 if ($unfollow_check === true) { 2 self::callUnfollowApi($twitter, $unfollowJob->id, $targetId, $twitterToken->twitter_account_id); 3 4 }

投稿2022/09/03 07:15

ttpk

総合スコア338

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問