laravel получить запрос значения по функции? - PullRequest
0 голосов
/ 10 апреля 2020

это очень странно для моей функции, когда я пытался получить данные на втором if я ничего не получил

я только получил последний if в чем проблема с кодом?

* контроллер. php

public function viewType(Request $request){

    if($request->get('program') === 'reportall') {
        $reportviewall =  ReportViewAll::paginate(5);
    }
    if($request->get('program') === 'reportactive') {
        $reportviewall =  ReportViewAll::where('crewprogram_isdisabled', '=',0)->paginate(5);
    }
    if($request->get('program') === 'reporthistory') {
        $reportviewall =  ReportViewAll::where('crewprogram_isdisabled', '=',1)->paginate(5);
    }
    if(($request->get('datestart') && $request->get('dateend')) != ''){
        $reportviewall = ReportViewAll::whereDate('crewprogrammemo_placement_date', 
                        array($request->get('datestart'), $request->get('dateend')))->paginate(5);
    }
    if($request->has('search') != ''){
        $reportviewall = ReportViewAll::where( 'employee_nik', 'LIKE', "%{$request->search}%" )
                        ->orWhere ( 'employee_nama', 'LIKE', "%{$request->search}%" )
                        ->orWhere ( 'crewprogramposition_name', 'LIKE', "%{$request->search}%" )
                        ->orWhere ( 'show_focus_id', 'LIKE', "%{$request->search}%" )
                        ->orWhere ( 'show_name', 'LIKE', "%{$request->search}%" )->paginate(5);
    }
    // $reportviewall = $request->get('search')->paginate(5);
        // dd($request->search);
    return view('CrewProgram.ReportView.index', compact('reportviewall'));
}

пожалуйста, помогите meee

1 Ответ

0 голосов
/ 11 апреля 2020

На мой взгляд, последнее «if»: метод «has» возвращает true, если значение присутствует в запросе. Почему вы ожидаете строку?

Вы можете изменить это "если" на:

if($request->has('search') && $request->get('search') != '')

Я не знаю, что вы хотите сделать, но, возможно, так:

 if($request->has('search'))

Несколько советов для вас:

Но, я думаю, вам следует реорганизовать свой код. Подумайте, когда вам нужно добавить новое «если». Прежде всего, вы должны собрать все данные запроса только один раз и поместить в переменную. Почему вы все время заменяете переменную $ reportviewall?

public function viewType(Request $request){
{
    $data = $request->only('program', 'datestart', 'dateend', 'search');

    // You need to create a new method
    $report = $this->chooseTheProgram($data['program']);

    if(!$report && !empty($data['datestart']) && !empty($data['dateend']))
    {
        // You need to create a new method
        $report = $this->retrieveBetween($data['datestart'], 
                                         $data['dateend']);
    } 
    else if (!$report && !empty($data['search']))
    {
         // You need to create a new method
         $report = $this->retrieveBy($data['search']);
    }

    return view('CrewProgram.ReportView.index', compact('report'));
}

Затем проверьте, отвечает ли метод еще за одну задачу. Попробуйте переместить код на слой «модель».

[] s

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