【问题标题】:laravel 5 , passing values from multiple controllerslaravel 5,从多个控制器传递值
【发布时间】:2016-06-24 16:04:17
【问题描述】:

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

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

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

【问题讨论】:

标签: php laravel


【解决方案1】:
Route::get('/add_email','ListsController@index_add_email'); 

在 ListsController 的 index_add_email 函数中添加这一行:

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】:

    Laravel 不支持将相同的路由('add_email')指向不同的控制器。 如果您需要这样做,请处理您定义的操作中的逻辑。

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

    【讨论】:

      【解决方案3】:

      您可以将路由设置为重定向到一个控制器,然后从被调用的控制器调用另一个控制器。

      例如在 routes.php 中

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

      在 ListsController 中

      public function index_add_email(...)
      {
          // Other code
          // Call RepoController function
          return app('App/Http/Controllers/RepoController')->repo_index_add_email();
      }
      

      (假设这是 RepoController.php 的正确命名空间)

      虽然我认为这是最简单的选择,但它确实会影响代码组织。您可以尝试使用事件和侦听器,因为在同一个事件期间执行两个不同的操作时,这在逻辑上是合理的,但同样,这简直是矫枉过正。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-19
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-16
        • 1970-01-01
        相关资源
        最近更新 更多