Как получить следующую запись в таблице, используя Laravel? - PullRequest
0 голосов
/ 08 марта 2020

ОБНОВЛЕНИЕ: следующая кнопка все еще не работает. Мне пришлось изменить часть кода, потому что моя следующая кнопка переходила с идентификатора 1 на 2, 3, 4, 5 и т. Д. c. Если запись JobSeekerProfile была удалена, то у меня возникает проблема, в которой, скажем, в моей таблице были записи с идентификаторами 1-10, а затем 15, а затем 29, потому что я удалял профили людей и проверял их, из-за этого они показывали неправильные профили для некоторых пользователей. Мне удалось исправить эту проблему, но теперь мой следующий маршрут или кнопка больше не работают, они не перемещаются к следующему идентификатору в таблице job_seekers_profiles.

Вот мой модифицированный код из моего контроллера AdminEmployerSearchController. php:

class AdminEmployerSearchController extends Controller
{
    public function show($id)
    {
        $user = Auth::user();

        $jobSeekerProfiles = JobSeekerProfile::where('id', 1)->get();

        $employerProfile = EmployerProfile::all()->where('id', $user->id)->first();

        $jobSeekerProfileNewId = JobSeekerProfile::all()->where('id', $id);

        $video1 = Video::all()->where('id', $jobSeekerProfiles[0]->video_one_id)->first();;

        $video2 = Video::all()->where('id', $jobSeekerProfiles[0]->video_two_id)->first();;

        $video3 = Video::all()->where('id', $jobSeekerProfiles[0]->video_three_id)->first();;

        return view('admin.employer.search.show', compact('jobSeekerProfiles', 'employerProfile', 'video1', 'video2', 'video3', 'jobSeekerProfileNewId'));
    }

    public function next($id)
    {

        $jobSeekerProfiles = JobSeekerProfile::skip($id)->take($id)->limit(1)->get();

        return view('admin.employer.search.show', compact('jobSeekerProfiles'));
    }
}

Модифицированный блейд-файл:

<div class="row">
    <div class="col-md-12">
        <h1>My Profile</h1>
        <video width="100%" height="100%" controls style="margin-top: 0;">
            {{--                <source src="highrjobs/storage/app/public/videos/{{ $videos[0] ? $videos[0]->file : '' }}" type="video/mp4">--}}
            <source src="http://highrjobs.test/storage/app/public{{ $video1->file ?? '' }}" type="video/mp4">
            Your browser does not support the video tag.
        </video>
    </div>
    <div class="col-md-6">
        <br><br><br>
        <h1 class="h1-admin">{{$jobSeekerProfileNewId->first()->first_name}} {{$jobSeekerProfileNewId->first()->last_name}}</h1>
    </div>
    <div class="col-md-6 text-right">
        <br><br><br>
        <video width="100" height="auto" controls>
            <source src="http://highrjobs.test/storage/app/public{{ $video2->file ?? '' }}" type="video/mp4">
            Your browser does not support the video tag.
        </video>
        <video width="100" height="auto" controls>
            <source src="http://highrjobs.test/storage/app/public{{ $video3->file ?? '' }}" type="video/mp4">
            Your browser does not support the video tag.
        </video>
    </div>
    <div class="col-md-12">
        <h3>Experience:</h3>
        <p>{{$jobSeekerProfileNewId->first()->experience}}</p>
        <h3>Additional Skills:</h3>
        <p>{{$jobSeekerProfileNewId->first()->additional_skills}}</p>
    </div>
    @if(Auth::user()->role_id === 2)
        <div class="col-md-6">
            <a href="" type="button" class="btn btn-lg btn-block btn-danger">Skip</a>
        </div>
        <div class="col-md-6">
            <button type="button" class="btn btn-lg btn-block btn-success" data-toggle="modal" data-target="#exampleModal">Request an Interview</button>
            <br><br>
        </div>
    @endif
</div>

<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content" style="height: 340px;">
            <div class="modal-header">
                <h5 class="modal-title" id="exampleModalLabel">Request an Interview</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                <div class="col-md-12">
                    <p>Select 2 options for your availabilities:</p>
                </div>
                <div class="col-md-12" style="display: inline-flex;">

                    {!! Form::open(['method'=>'POST', 'action'=>'AdminEmployerInterviewRequestsController@store', 'files'=>true, 'style'=>'width: 100%;']) !!}

                    <div class="form-group">
                        <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
                            {!! Form::text('date_time1', null, ['class'=> $errors->first('date_time1') ? 'border-danger form-control datetimepicker-input' : 'form-control datetimepicker-input', 'data-target'=>'#datetimepicker1']) !!}
                            <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
                                <div class="input-group-text"><i class="fa fa-calendar"></i></div>
                            </div><br>
                        </div>
                        <small class="text-danger">{{ $errors->first('date_time1') }}</small>
                    </div>
                    <div class="col">

                    </div>

                    <div class="form-group">
                        <div class="input-group date" id="datetimepicker2" data-target-input="nearest">
                            {!! Form::text('date_time2', null, ['class'=> $errors->first('date_time2') ? 'border-danger form-control datetimepicker-input' : 'form-control datetimepicker-input', 'data-target'=>'#datetimepicker2']) !!}
                            <div class="input-group-append" data-target="#datetimepicker2" data-toggle="datetimepicker">
                                <div class="input-group-text"><i class="fa fa-calendar"></i></div>
                            </div><br>
                        </div>
                        <small class="text-danger">{{ $errors->first('date_time2') }}</small>
                    </div>

                    <div class="form-group">
                        {!! Form::hidden('user_id', Auth::user()->id, ['class'=>'form-control']) !!}
                    </div>

                    <div class="form-group">
                        {!! Form::hidden('job_seeker_profile_user_id', $jobSeekerProfileNewId->first()->id, ['class'=>'form-control']) !!}
                    </div>

                    <div class="form-group">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                        {!! Form::submit('Send Interview Request', ['class'=>'btn btn-primary float-right']) !!}
                    </div>
                    <br><br><br><br>

                    {!! Form::close() !!}

                </div>
            </div>

        </div>
    </div>
</div>

Почему следующий метод в моем контроллере больше не работает?


У меня есть Таблица в моей базе данных называется job_seeker_profiles, где я храню профили тех, кто ищет работу. У меня есть контроллер AdminEmployerSearchController, где работодатели могут просматривать профили соискателей с помощью этого метода показа:

public function show()
    {
        $jobSeekerProfiles = JobSeekerProfile::limit(1)->get();

        return view('admin.employer.search.show', compact('jobSeekerProfiles'));
    }

Он показывает мне первую запись в таблице, которую я хочу показать одна запись за раз. В моем представлении у меня есть кнопка «Пропустить», где при нажатии я хочу, чтобы она показала следующую запись в базе данных, сейчас она показывает мне запись 1, поэтому при нажатии она будет go до записи 2, затем запись 3, затем запишите 4 et c. Это похоже на предыдущую и следующую функциональность.

show.blade. php file:

@extends('layouts.admin')

@section('content')

    @if($jobSeekerProfiles)

        @foreach($jobSeekerProfiles as $jobSeekerProfile)

            <div class="row">
                <div class="col-md-12">
                    <video width="100%" height="100%" controls>
                        <source src="{{ asset('videos/1583095973A man DJing an event.mp4') }}" type="video/mp4">
                        Your browser does not support the video tag.
                    </video>
                </div>
                <div class="col-md-6">
                    <br>
                    <h1 class="h1-admin">{{$jobSeekerProfile->first_name}} {{$jobSeekerProfile->last_name}}</h1>
                </div>
                <div class="col-md-6 text-right">
                    <br>
                    <video width="100" height="auto" controls>
                        <source src="{{ asset('videos/1583095973Man Doing Rap Music.mp4') }}" type="video/mp4">
                        Your browser does not support the video tag.
                    </video>
                    <video width="100" height="auto" controls>
                        <source src="{{ asset('videos/1583095973Tractor Cutting Grass In The Field.mp4') }}" type="video/mp4">
                        Your browser does not support the video tag.
                    </video>
                </div>
                <div class="col-md-12">
                    <h3>Experience:</h3>
                    <p>{{$jobSeekerProfile->experience}}</p>
                    <h3>Additional Skills:</h3>
                    <p>{{$jobSeekerProfile->additional_skills}}</p>
                </div>
                <div class="col-md-6">
                    <button type="button" class="btn btn-lg btn-block btn-danger">Skip</button>
                </div>
                <div class="col-md-6">
                    <button type="button" class="btn btn-lg btn-block btn-success">Interview</button>
                </div>
                <div class="col-md-12">
                    <br><br>
                    <hr><br><br>
                </div>
            </div>

        @endforeach

    @endif

@stop

Я подумал, что мне нужно будет найти идентификатор в таблице, а затем работать с этим , но я не могу заставить его работать. Ниже скриншот страницы, вы поймете, что я имею в виду. enter image description here

Ответы [ 2 ]

0 голосов
/ 08 марта 2020

Для этого нужно использовать пагинацию:

$profiles = JobSeekerProfile::paginate(1);
return view('index', ['profiles' => $profiles]);

https://laravel.com/docs/5.8/pagination

0 голосов
/ 08 марта 2020

Вы должны использовать метод ->skip() или ->offset() для определения начальной точки и метод ->take() для получения количества данных

JobSeekerProfile::get()->offset(2)->take(1);

Вернет 3-й результат, пропуская первые 2 записи.

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