【问题标题】:Pass Data between two different controllers in laravel在 laravel 中的两个不同控制器之间传递数据
【发布时间】:2019-11-13 17:58:15
【问题描述】:

我正在 Laravel 中构建一个应用程序。我需要在两个不同控制器的两种方法之间传递一些数据。让我解释你,

我有一个控制器 SellerRegisterController,它有一个方法 verifySeller,

class sellerRegisterController extends Controller
{

public function verifySeller()
{
//some logic here

}

}

上述 veirfySeller 方法适用于某些逻辑并创建一个可变 ID,我想将该可变 ID 数据传递给不同控制器 (sellerDetailsController) 中的另一个方法 (submitSellerDetails)。

class sellerDetailsContorller extends Controller
    {

    public function submitSellerDetails()
    {
    //some logic here
    }

    }

简而言之,我想知道如何将数据/变量从一种方法传递到不同控制器中的另一种方法?谢谢

【问题讨论】:

  • 您是否有特定的理由将它们分成两个控制器,而不是将所有东西都放在一个 SellerController 中?
  • @GageLaFleur 好的,假设我将这两种方法都放在同一个控制器中,然后如何在同一个控制器中的两个方法之间传递数据?

标签: php laravel


【解决方案1】:

如果我是你,我会在同一个控制器中定义 verifySeller()submitSellerDetails() 这两个方法。

您的控制器将如下所示:

class sellerRegisterController extends Controller
{

    public function verifySeller( Request $request )
    {
         //some logic here

         // passing data to another method in the same controller
         $this->submitSellerDetails( $request );
    }

    public function submitSellerDetails( Request $request )
    {
      //some logic here
    }

}

如果您不想传递 $request 变量而是传递其他变量,则可以执行以下操作:

class sellerRegisterController extends Controller
{

    public function verifySeller( Request $request )
    {
         //some logic here

         // passing data to another method in the same controller
         $this->submitSellerDetails( $variableContainingYourData );
    }

    public function submitSellerDetails( $someArgument )
    {
      //some logic here
    }
}

还有另一种处理方式。您可以在控制器中定义一个变量,在verifySeller() 方法中为其分配您想要的任何数据,然后调用submitSellerDetails() 方法并在其中使用该变量。

更新:

class sellerRegisterController extends Controller
{
    private $someVariable;

    public function verifySeller( Request $request )
    {
         //some logic here

         // assign data which you want to access inside submitSellerDetails()
         $this->someVariable = 'some data';

         // calling submitSellerDetails() method
         $this->submitSellerDetails();
    }

    public function submitSellerDetails()
    {
      //some logic here

      //do whatever you want with $this->someVariable;
    }
}

希望对你有帮助。

【讨论】:

  • 感谢您的回复。好的,那么我如何才能在第二种方法中获取变量数据?就像传递一样,我可以使用这一行 $this->submitSellerDetails($variableContainingYourData);。如何获取 submitSellerDetals 中的值?
  • $someArgument 应该包含从verifySeller 方法传递的数据。看来你的基础很薄弱,需要做一些工作。让我修改我的答案并添加更多细节。
猜你喜欢
  • 2020-10-12
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 1970-01-01
相关资源
最近更新 更多