Страничка Laravel Page2 Ссылки на пустую страницу - PullRequest
0 голосов
/ 13 февраля 2019

Я взламываю этот запрос Laravel, он возвращает этот штраф за нумерацию страниц для страницы 1, но остальные ссылки ведут на пустые отфильтрованные страницы поиска, которых должно быть больше, или остальные результаты запроса.

Контроллер:

    <?php
namespace App\Http\Controllers;

use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use App\Job;
use Carbon\Carbon;

class FilterJobsController extends Controller
{
    /**
     * Show a list of all of the application's users.
     *
     * @return Response
     */



    public function index()
    {

        $bidded = request('bidded');
        $state = request('state');
        $city = request('city');
        $contractor = request('contractor');
        $job = request('job');
        $subjob = request('subjob');


        $jobs = DB::table('jobs')->where([
            ['bidded', '=', $bidded],
            ['state', '=', $state],
            ['city', '=', $city],
            ['contractor', '=', $contractor],
            ['job', '=', $job],
            ['subjob', '=', $subjob],
            ])->paginate(3);
        //])->get(); <<<former working method

        return view('jobs.index', compact('jobs')->with('links', $links));

    }
}
?>

Блейд-файл:

@extends ('layouts.master')

@section ('content')

    <div class="jobs">
        @foreach(array_chunk($jobs->getCollection()->all(), 3) as $page)
            <div class="leftarrow">❰</div> 
                @foreach ($jobs as $job) 
                   @include ('jobs.job')
                @endforeach

            <div class="pagenumbers">
                {{ $jobs->links() }}
            </div>

            <div class="rightarrow">
                <!-- <a href="{{ url('/jobs/') }}"> -->
                    ❱
                <!-- </a> -->
            </div>

            <div class="downarrowrow">
                <div class="downarrow">❱❱</div>
            </div>
        @endforeach
    </div>
@endsection

Как уже говорилось, страница 1 разбиения на страницы работает, но ссылки в списке разбиваются на пустые страницы, просто layout-blade,Информация заголовка и нижнего колонтитула, никакие дальнейшие поисковые результаты не возвращаются.

Любые подсказки относительно того, почему у "ссылок" нет информации, только действительная ссылка, приветствуются.

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Это хорошая подсказка, теперь мой запрос $ строится с какими-то ненужными дополнительными html-символами, которые я предполагаю (2)

Это первый построенный Laravel запрос, который работает:

filterjobs?bidded=0&state=Arizona&city=Phoenix&contractor=GeneralContractor&job=Concrete&subjob=Material

(2) Вот то, что делает моя попытка $ request, таким образом, ничего не возвращая из-за лишних символов и, казалось бы, разбитого логического порядка для запроса:

filterjobs?=bidded%3D0&1=state%3DArizona&2=city%3DPhoenix&3=contractor%3DGeneralContractor&4=job%3DConcrete&5=subjob%3DMaterial&page=2

Вот как я это построилgarble:

$request = array(
            ['bidded'.'='.$bidded)],
            ['state'. '='. $state],
            ['city'. '='. $city],
            ['contractor'. '='. $contractor],
            ['job'. '='. $job],
            ['subjob'. '='. $subjob]);

А затем добавил его, как вы предложили:

$jobs = DB::table('jobs')->where([
            ['bidded', '=', $bidded],
            ['state', '=', $state],
            ['city', '=', $city],
            ['contractor', '=', $contractor],
            ['job', '=', $job],
            ['subjob', '=', $subjob],
            ])->paginate(3)->appends($request);;
            // 

urlendode, urldecode или mysqi_escape_real не помогают.И я построил этот запрос другими способами, но все еще получаю нежелательные символы, которые делают запрос недействительным.И, если вы посмотрите внимательно, все также вышло из строя со знаками равенства, кажется, что мы также манипулировали строкой в ​​эфире, возвращая какой-то дислексионный запрос по причинам, которые я не совсем понимаю.

Но, похоже,решение в этом направлении может сработать, в конце концов, по крайней мере, страница нумерации страниц2 имеет запрос.

0 голосов
/ 15 февраля 2019

Да, правильное добавление запроса было ключевым, спасибо.

$this->validate(request(), [
            'bidded' => 'required',
            'state' => 'required',
            'city' => 'required',
            'contractor' => 'required',
            'job' => 'required',
            'subjob' => 'required',
        ]);


        return view('jobs.index', [
        'jobs' => Job::where([
            ['bidded', request('bidded')],
            ['state', request('state')],
            ['city', request('city')],
            ['contractor', request('contractor')],
            ['job', request('job')],
            ['subjob', request('subjob')], 
            ])->paginate(3)->appends([
                'bidded' => request('bidded'),
                'state' => request('state'),
                'city' => request('city'),
                'contractor' => request('contractor'),
                'job' => request('job'),
                'subjob' => request('subjob'),
        ])
        ]);
0 голосов
/ 13 февраля 2019

Возможно, данные запроса больше не доступны по следующей ссылке.Упомянутые здесь запрошенные данные:

$bidded = request('bidded');
$state = request('state');
$city = request('city');
$contractor = request('contractor');
$job = request('job');
$subjob = request('subjob');

Чтобы решить эту проблему, попробуйте добавить объект запроса в ответ paginate следующим образом:

$jobs = DB::table('jobs')->where([
   ['bidded', '=', $bidded],
   ['state', '=', $state],
   ['city', '=', $city],
   ['contractor', '=', $contractor],
   ['job', '=', $job],
   ['subjob', '=', $subjob],
])->paginate(3)->appends($request->all()); // -----> This line
...