有没有办法在Laravel中使用带有两个控制器的一条路由?

时间:2019-08-29 17:28:26

标签: php laravel

我想要一个路线两个控制器。但是,我无法实现它。我有ExpenseControllerIncomeController,而我的路线如下:

Route::get('/api/expense/', 'ExpenseController@index');
Route::post('/api/expense', 'ExpenseController@create');

我想与IncomeController

添加相同的路线
Route::get('/api/expense', 'IncomeController@index');
Route::post('/api/expense', 'IncomeController@create');

1 个答案:

答案 0 :(得分:0)

否,不可能将一条路由直接链接到两个控制器。

但是,在注释部分中,确定实际上并不需要一条路由来链接到多个控制器,而是需要一个控制器来控制多个模型。

您可以创建一个用于控制收入和支出的单一控制器BudgetController。这是在同一页面上显示两者的列表的示例:

routes / web.php

Route::resource('budget', 'BudgetController');

app / Http / Controllers / BudgetController.php

public function index() 
{
    return view('budget.index', [
        'incomes' => Income::all(),
        'expenses' => Expense::all(),
    ])
}

资源/视图/预算/index.php

<table>
    @foreach($incomes as $income)
        <tr><td>{{ $income->amount }}</td></tr>
    @endforeach
</table>

<table>
    @foreach($expenses as $expense)
        <tr><td>{{ $expense->amount }}</td></tr>
    @endforeach
</table>