首页 > 解决方案 > 在 laravel 中的两个不同控制器之间传递数据

问题描述

我正在 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
    }

    }

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

标签: phplaravel

解决方案


如果我是你,我会在同一个控制器中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;
    }
}

希望能帮助到你。


推荐阅读