在Laravel 5的多个函数中使用相同的代码段


Use the same piece of Code in multiple functions in Laravel 5

我有这段代码,我想在控制器的每个功能中使用前 10-15 行,如何在不到处复制粘贴的情况下做到这一点?

public function fac(){
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    $nome=$cliente->nome;
    $id=$cliente->id;
    //dd($cliente->contas()->get());
    $i=0;
    $contas=$cliente->contas();
    foreach ($cliente->contas()->get() as $conta){
        $idcontas[$i]=($conta->id);
        $i=$i+1;
    }
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    $nome=$cliente->nome;
    return view('hbpages.fac',compact('nome'));
}
public function presta(){
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    $nome=$cliente->nome;
    $id=$cliente->id;
    //dd($cliente->contas()->get());
    $i=0;
    $contas=$cliente->contas();
    foreach ($cliente->contas()->get() as $conta){
        $idcontas[$i]=($conta->id);
        $i=$i+1;
    }
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    $nome=$cliente->nome;
    return view('hbpages.presta',compact('nome'));
}

我不完全确定你在这里做什么,但如果你正在寻找一个快速抽象,你总是可以将大部分代码添加为一个新函数,并使用前两个函数中的$this->调用:

public function fac()
{
    $nome = $this->allTheStuff();
    return view('hbpages.fac',compact('nome'));
}
public function allTheStuff()
{
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    $nome=$cliente->nome;
    $id=$cliente->id;
    $i=0;
    $contas=$cliente->contas();
    foreach ($cliente->contas()->get() as $conta){
        $idcontas[$i]=($conta->id);
        $i=$i+1;
    }
    $homebanking=Auth::user();
    $cliente=$homebanking->cliente();
    return $cliente->nome;
}