Вызов функции другой функции - PullRequest
0 голосов
/ 29 сентября 2018

У меня в контроллере есть функция, которая вызывает мой клинок:

public function detalhe(Request $request){
    //pega o ID da marcação
    $id = $request['id'];
    $marcacao = Marcacao::find($id);

    //prepara a receita pra ser criada
    $dadosReceita['marcacao_id'] = $id;
    $dadosReceita['codigo'] = $marcacao->id . $marcacao->cidadao_id . $marcacao->agenda_id;
    //consulta a receita
    $receita = Receita::where('marcacao_id', $id)->first();
    //verifica se existe a receita / cria a receita
    if (count($receita) > 0){
        $receitas_id = $receita['id'];    
    }else{
        $receita = Receita::create($dadosReceita);
        $receitas_id = $receita['id'];
    }
    //pega a lista dos produtos da receita
    $produtoReceitas = ProdutoReceita::where('receitas_id', $receitas_id)->get();

    //prepara o prontuario pra ser criado
    $dadosProntuario['marcacao_id'] = $id;
    //consulta o prontuario
    $prontuario = Prontuario::where('marcacao_id', $id)->first();
    //verifica se existe o prontuario / cria o prontuario
    if (count($prontuario) > 0){
        $prontuario_id = $prontuario['id'];    
    }else{
        $prontuario = Prontuario::create($dadosProntuario);
        $prontuario_id = $prontuario['id'];
    }
    //pega a lista dos ciaps do prontuario
    $ciapProntuarios = CiapProntuario::where('prontuario_id', $prontuario_id)->get();

    //pega a lista de produtos da undade
    $produtos = ProdutoUnidade::where('unidade_id', 2)
                              ->get();

    $vencimento = new DateTime(date("y-m-d"));
    $vencimento->add(new DateInterval('P90D'));
    $vencimento = $vencimento->format('y-m-d');

    $ciaps = Ciap::where('sexo', $marcacao->cidadao->sexo)
                 ->orWhere('sexo', 'A')
                 ->get();

    return view('agendas.detalhe', compact('ciapsProntuario', 'marcacao', 'produtos', 'vencimento', 'ciaps', 'receitas_id', 'prontuario_id', 'produtoReceitas'));
}

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

Мне нравится делать вторую функцию, как показано ниже

public function two(){
    //other lines differente
    return detalhe(); //return my other function
}

Когда я ставлю этот код, я получаюошибка:

FatalErrorException

Вызов неопределенной функции App \ Http \ Controllers \ detalhe ()

1 Ответ

0 голосов
/ 29 сентября 2018

Вам необходимо использовать $this. Если он принадлежит к тому же контроллеру, позвоните ему, используя $this->detalhe().В противном случае используйте return redirect()->action('YourAction@YourController')

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