【问题标题】:How to call multiple methods or controllers to a same route in laravel如何在 laravel 中调用多个方法或控制器到同一路由
【发布时间】:2018-09-16 11:27:14
【问题描述】:

在控制器代码下方找到两个方法,并建议我如何在同一路由中调用这两个方法,或者我是否必须为同一页面(路由)创建两个不同的控制器。

class TicketController extends Controller
{
    public function show(){
    $results=Whmcs::GetTickets([

    ]);
    return view('clientlayout.main.index',compact('results'));
}

    public function set(){
    $test=Whmcs::GetInvoices([

    ]);
    return view('clientlayout.main.index',compact('test'));
}

}

路由文件:

  Route::get('clientlayout.main.index','TicketController@show');

  Route::get('clientlayout.main.index','TicketController@set');

在刀片文件中查找代码,运行后出现错误

未定义的索引:结果。

  @foreach($results['tickets']['ticket'] as $key)

  {{$key['subject']}}
  @endforeach



  @foreach($test['invoices']['invoice'] as $value)

  {{$value['firstname']}}
  @endforeach

当我在不同的刀片文件中运行这两个 foreach 循环时,它可以正确执行,但我需要在同一个文件中查看这两个结果。

如何在同一个索引页面同时查看票据和发票?

【问题讨论】:

    标签: laravel-5 laravel-4 laravel-5.2 laravel-5.1 laravel-5.3


    【解决方案1】:

    将两个控制器合二为一,并在一个方法中执行两个查询:

    class InvoiceTicketController extends Controller
    {
        public function show(){
            $tickets = Whmcs::GetTickets([]);
            $invoices = Whmcs::GetInvoices([]);
            return view('clientlayout.main.index',compact('tickets', 'invoices'));
        }
    }
    

    然后更新其中一个路由以使用组合控制器:

    Route::get('clientlayout.main.index','InvoiceTicketController@show');
    

    您可以通过这种方式访问​​刀片文件中的 $tickets 和 $invoices 集合:

    @foreach($tickets as $ticket)
      {{ $ticket->subject }}
    @endforeach
    
    @foreach($invoices as $invoice)
      {{ $invoice->firstname }}
    @endforeach
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2014-08-07
      • 1970-01-01
      • 2014-08-08
      • 1970-01-01
      • 2016-05-08
      相关资源
      最近更新 更多