如何在laravel中将多个方法或控制器调用到同一路径

时间:2018-04-06 12:21:11

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

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

<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:orientation="horizontal"
        android:id="@+id/mainLinearLayout">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:layout_weight="0.2"
            android:id="@+id/statusLinearLayout">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:id="@+id/statusTextView" />
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:layout_weight="0.8">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:id="@+id/pNameTextView" />
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:id="@+id/hNameTextView" />
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal">
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:gravity="center"
                    android:id="@+id/sTypeTextView" />
                <TextView
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:layout_weight="1"
                    android:id="@+id/dateTextView" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="@color/colorPrimary"
        android:layout_below="@+id/mainLinearLayout"/>
</RelativeLayout>

}

路线档案:

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循环时,它正确执行,但我需要在同一个文件中查看这两个结果。

如何在同一索引页面中查看故障单和发票?

1 个答案:

答案 0 :(得分:0)

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

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