laravel 5,传递来自多个控制器的值

时间:2016-06-24 07:28:55

标签: php laravel

我正在尝试向一个视图发送来自不同控制器的一些值 这是我的代码:

Route::get('/add_email','ListsController@index_add_email');
Route::get('/add_email','RepoController@repo_index_add_email');

我试图在这个页面上显示(add_email)这两个函数的值。当然我现在如何得到错误,因为第二个 get 将覆盖第一个。我如何混合这两个“GET”?

3 个答案:

答案 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指南:

PSR-1:http://www.php-fig.org/psr/psr-1/

PSR-2:http://www.php-fig.org/psr/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的正确命名空间)

虽然我认为这是最简单的选择,但它确实会破坏代码组织。您可以尝试使用事件和监听器,因为在同一事件中执行两个不同的操作时,这将具有逻辑意义,但这又简直太过分了。