Я пытаюсь добавить новые функции в свой проект, чтобы иметь возможность добавлять твиты анонимно, поэтому мне нужно проверить, если открытое поле = 0, вернуть твиты без пользовательского или нулевого пользовательского объекта!
Как я могу использовать «с» с OrWhere или что-то подобное?
Я сделал это путем объединения коллекций, но для этого мне нужен более эффективный запрос
когда я пытаюсь OrWhere () -> with (), который возвращает пользовательские данные для всей коллекции, мне нужны данные в with () приходит только с условием? как это сделать ?
Спасибо
$tweets = Tweet::where(function ($query) {
$query->where('public',1);
$query->where('hashtag_id', request('hashtag_id'));
})->with([
'user' => function ($query) {
$query->select('id', 'name', 'username', 'photo', 'verified')->withTrashed();
},
'hashtag' => function ($query) {
$query->withTrashed();
},
])-> where(function ($query) {
$query->whereRaw('DATE_ADD(created_at,INTERVAL expiration_time SECOND) >= "' . Carbon::now()->toDateTimeString() . '" or expiration_time = 0');})
->withCount(['replies'])->orderBy('created_at', 'desc')->get();
$tweets2 = Tweet::where(function ($query) {
$query->where('public',0);
$query->where('hashtag_id', request('hashtag_id'));
})->with(['hashtag' => function ($query) {
$query->withTrashed();
},
])-> where(function ($query) {
$query->whereRaw('DATE_ADD(created_at,INTERVAL expiration_time SECOND) >= "' . Carbon::now()->toDateTimeString() . '" or expiration_time = 0');})
->withCount(['replies'])->orderBy('created_at', 'desc')->get();
$tweets = $tweets->merge($tweets2);