Как я могу получить экземпляр этого конкретного запроса? - PullRequest
0 голосов
/ 14 января 2020

Ошибки, которые я получаю:

Аргумент 1, передаваемый в App \ Services \ Credit \ CreditLoadUserService :: index (), должен быть экземпляром Illuminate \ Http \ Request, экземпляром Illuminate \ Database \ Eloquent \ Collection заданный, вызывается в C: \ wamp64 \ www\dev \ get-serve-admin \ app \ Http \ Controllers \ CreditLoadUserController. php в строке 30

Контроллер:

public function index()
{
    view()->share('page_sub', 'List');
    $credit = CreditLoadUser::all();
    $data = $this->user_load_service->index($credit);
    return view('pages.user-loads.index')->with('credit', $data);
}

Класс обслуживания:

public function index(Request $request)
{
    return CreditLoadUser::where('user_id',$request->get('user_id'))
        ->where('is_loaded','<>',1)
        ->leftJoin('credit_load','credit_load.id','=','credit_load_id')
        ->orderBy('credit_load.valid_at')
        ->get();
}

Ответы [ 2 ]

0 голосов
/ 14 января 2020

Объект Request будет автоматически добавляться только в методы действий в контроллерах.

Еще один момент, на который следует обратить внимание: вам следует избегать написания кода, поддерживающего HTTP, на уровне службы. Рассмотрим ситуации, в которых вы хотите использовать свой сервисный уровень внутри команды ремесленника или в работе, у вас нет запроса в контексте CLI. Поэтому вы должны написать так:

Контроллер:

public function index(Request $request)
{
    view()->share('page_sub', 'List');
    $credit = CreditLoadUser::all();
    $data = $this->user_load_service->index($request->get('user_id'));
    return view('pages.user-loads.index')->with('credit', $data);
}

Класс обслуживания:

public function index($userId)
{
    return CreditLoadUser::where('user_id', $userId)
        ->where('is_loaded','<>',1)
        ->leftJoin('credit_load','credit_load.id','=','credit_load_id')
        ->orderBy('credit_load.valid_at')
        ->get();
}
0 голосов
/ 14 января 2020

Вы должны передать запрос в ваш индексный метод услуг, который вы не передаете, лучше использовать вспомогательный метод запроса, смотрите ниже код.

Класс обслуживания:

public function index()
{
    return CreditLoadUser::where('user_id',request()->get('user_id'))
        ->where('is_loaded','<>',1)
        ->leftJoin('credit_load','credit_load.id','=','credit_load_id')
        ->orderBy('credit_load.valid_at')
        ->get();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...