Я пытался выполнить предложение множественного числа, но не смог.Я хочу проверить, совпадает ли текущая дата пользователя с create_at, и второе предложение будет, если у пользователя есть запись по идентификатору пользователя.Я работаю над фитнес-приложением, в котором Пользователь может отследить пройденный километр.А скорее для создания в таблице базы данных новых записей просто добавьте их в существующие записи.Мой вопрос сосредоточен на проблеме с предложением if, потому что переменная $hasUserEntries
не равна нулю, но в таблице базы данных нет записи.Он пуст.
Я попытался вместо get()
Я использовал first()
.Но проблема в том, что я не смог использовать Carbon::today()
или, может быть, я использовал 3 значения в предложении where, которые мне нужны, потому что я не могу получить created_at
дату только Date YYYY-MM-DD .В операторе first()
я использовал твердо закодированный DateTime для проверки с created_at
, и это сработало.Но я думаю, что не должен объяснять, почему жесткий код не оптимален.
Я искал в Stackoverflow и обнаружил, что большинство ответов касалось использования get()
.Это нормально, но почему мой else
срабатывает, потому что, с моей точки зрения, база данных пуста (пусто), поэтому if($hasUserEntries==null)
должен срабатывать.
public function add_km_to_progressbar(Request $request, TrackKM $trackKM)
{
$track_dailies = new TrackDaily();
$track_dailies->user_id = \Auth::user()->id;
$amount_runned_km = $request->input('amount_runned_km');
$amount_runned_km = (int)$amount_runned_km;
$track_dailies->amount = (int)$amount_runned_km;
$track_dailies->type = 1;
$check_requirements = [
'user_id'=>\Auth::user()->id,
'created_at'=>'Carbon::today()'
];
$hasUserEntries = DB::table('track_dailies')
->where('user_id','=',\Auth::user())
->where('created_at','>=',Carbon::today())
->get();
if ($hasUserEntries == null) {
return dd('does not work');
} else {
return dd('does work');
}
}
Ожидаемый результат должен вызывать оператор if, потому что, если таблица базы данных пуста, идентификатор пользователя не существует, или дата create_at не совпадает с текущей датой, то должна срабатывать if($hasUserEntries==null)
.Я хочу создать там новую строку, если это условие == null в базе данных.
Фактический результат if($hasUserEntries==null)
имеет значение true, хотя таблица базы данных пуста.Я думаю, что метод get()
имеет сохраненные значения, которые не связаны с базой данных.
Я надеюсь, что вы можете мне помочь.