внедрить углерод для сравнения даты (API) - PullRequest
0 голосов
/ 04 октября 2018
public function searchresult (Request $request)
{
    $keyword = $request->name;

    $search = Mosque::where('name', 'LIKE',"%{$keyword}%" )
        ->whereHas('events')
        ->orWhereHas('activities')
        ->get();

    return response()->json(['result' => $search]);    
}

// модель мечети

class Mosque extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'state_id',
        'area_id',
        'name',
        'latitude',
        'longitude',
        'address',
        'image',
        'type',
        'referral_code',
        'phone_number_1',
        'phone_number_2',
        'deleted_at'
    ];

    public function events()
    {
        return $this->hasMany('App\Event');
    }

    public function activities()
    {
        return $this->hasMany('App\Activity');
    }
}

Это мой контроллер для поиска.отношение мечеть имеет много событий и деятельности.в действиях и событиях у меня есть дата начала и окончания столбца.как я использую углерод, чтобы сравнить сегодняшнюю дату с начальной датой и сравнить сегодняшнюю дату с конечной датой, которая даст результат только мечети, в которой есть событие и активность между начальной датой и конечной датой.Спасибо

1 Ответ

0 голосов
/ 04 октября 2018

в ваших whereHas() отношениях вы можете предоставить closure, как это.

Возможное решение.

$search = Mosque::where('name', 'LIKE',"%{$keyword}%" )
    ->whereHas('events', function($query) {
        query->where([
            ['start_date', '<=' Carbon::today()->format('Y-m-d')]
            ['end_date', '>=' Carbon::today()->format('Y-m-d')]
        ]);
    })
    ->orWherehas('activities', function($query) {
        query->where([
            ['start_date', '<=' Carbon::today()->format('Y-m-d')]
            ['end_date', '>=' Carbon::today()->format('Y-m-d')]
        ]);
    })
    ->get();

Обратите внимание, что start_date и end_date должны бытьиз date or timestamps в противном случае, если они равны text, вам необходимо сначала ввести их

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...