是否可以使用 IF 语句从数据库中获取数据并将其保存到 String 中?

Is that possible to use IF statement to get data from database and save it into String?

我想从 tbl_jadwal 获取一些记录并将其保存到我的 laravel 中的字符串中。 这是我的代码,

$get_time = if (now()->isMonday()) {
            return DB::table('tbl_jadwal')->where('Hari', 'Senin')->value('Jadwal_masuk');
        } else if(now()->isSaturday()) { {
            return DB::table('tbl_jadwal')->where('Hari', 'Sabtu')->value('Jadwal_masuk');
        };

$time = $get_time;

但是我收到消息语法错误,意外标记“if”,还有其他方法可以解决这个问题吗?

从广义上讲,您可以这样做:

if (now()->isMonday()) {
    $get_time = DB::table('tbl_jadwal')->where('Hari', 'Senin')->value('Jadwal_masuk');
} else if(now()->isSaturday()) { {
    $get_time = DB::table('tbl_jadwal')->where('Hari', 'Sabtu')->value('Jadwal_masuk');
}
// Caution: $get_time may not be defined here
return $get_time??null;

您也可以使用 when:

if (!now()->isSaturday() && !now()->isMonday()) { return null; }
    
return DB::table('tbl_jadwal')
  ->when(now()->isSaturday(), function ($q) { $q->where('Hari', 'Sabtu'); )
  ->when(now()->isMonday(), function ($q) { $q->where('Hari', 'Senin'); )
  ->value('Jadwal_masuk');

但是 carbon 也支持本地化,因此您可以 now()->dayName 根据您的语言环境实际 return 日期名称。