我正在尝试向一个视图发送来自不同控制器的一些值 这是我的代码:
Route::get('/add_email','ListsController@index_add_email');
Route::get('/add_email','RepoController@repo_index_add_email');
我试图在这个页面上显示(add_email)这两个函数的值。当然我现在如何得到错误,因为第二个 get 将覆盖第一个。我如何混合这两个“GET”?
答案 0 :(得分:0)
Laravel并不支持将相同路线(' add_email')指向不同的控制器。 如果您需要这样做,请处理您定义的操作中的逻辑。
Route::get('/add_email','ListsController@index_add_email');
Route::get('/add_email','RepoController@repo_index_add_email');
答案 1 :(得分:0)
Route::get('/add_email','ListsController@index_add_email');
在index_add_email函数中的ListsController内添加以下行:
with(new RepoController())->repo_index_add_email();
顺便说一下,确保读取PSR-1&& PSR-2指南:
答案 2 :(得分:0)
您可以将路由设置为重定向到一个控制器,然后从调用的控制器中调用另一个控制器。
例如在routes.php中
public function index_add_email(...)
{
// Other code
// Call RepoController function
return app('App/Http/Controllers/RepoController')->repo_index_add_email();
}
和ListsController
if(ModelState.IsValid)
{
//code here to save data to database
db.SaveChanges();
ModelState.Clear();
}
return view(new CategoryViewModel());
(假设这是RepoController.php的正确命名空间)
虽然我认为这是最简单的选择,但它确实会破坏代码组织。您可以尝试使用事件和监听器,因为在同一事件中执行两个不同的操作时,这将具有逻辑意义,但这又简直太过分了。