如何从Laravel 8中的另一个控制器将参数传递给Controller中的函数

西蒙·J。

我在Laravel 8中从事一个项目。在一个控制器中,我通过$ request接收了一些数据,并对它们进行了处理。此后,当数据正常时,我想传递给下一个控制器,以进行其他工作。

我正在这样做:

class UserController extends Controller
{
    public function validation(Request $request)
    {
        $data = $request->all();
    
        if (!is_numeric($data['from']) || !is_numeric($data['to']) || !is_numeric($data['attempts'])) {
            return response()->json(['error' => 'Form fields with number in theirs name must be a number']);
        } elseif ($data['from'] <= 0 || $data['from'] >= ($data['to'] - 2)) {
            return response()->json(['error' => 'Field with the lowest number must be grater than 0 and at least 2 smaller than field with the highest number']);
        } elseif ($data['to'] <= 2 || $data['to'] <= ($data['from'] + 2)) {
            return response()->json(['error' => 'Field with the highest number must be grater than 2 and at least 2 bigger than field with the lowest number']);
        } elseif ($data['attempts'] <= 0) {
            return response()->json(['error' => 'Field with number of attempts must be grater than 0']);
        } else {
    
            $user = new User;
    
            $user->playerName = $data['name'];
    
            $user->save();
    
            $data['id'] = $user->id;
    
            return redirect()->action(
                [GameController::class, 'index'],
                $data
            );
        }
    }
}

这是另一个控制器:

class GameController extends Controller
{
    public function index(Request $request, $data): View
    {
        dd($data);

        return view('game');
    }
}

问题是我收到错误消息:

函数App \ Http \ Controllers \ Game \ GameController :: index()的参数太少,第54行的C:\ xampp \ htdocs \ app \ vendor \ laravel \ framework \ src \ Illuminate \ Routing \ Controller.php中传递了1个参数恰好2个预期

有没有办法将$ data从一个数据提供给另一个控制器?

也许有一种方法可以向一个控制器中的$ request添加一些数据,然后以这种方式将其传递给另一个控制器?

格罗姆弗

在第一个控制器中,您应该执行以下操作:

return redirect(route('routeToSecondController', [*your data*]));

如果能开机自检会更好。您不应在第二个Controller中添加多个参数。所有数据将保存在$ request-> all()中。

不要按照您的方式验证数据。我建议您在带有规则的请求类中执行此操作(https://laravel.com/docs/8.x/validation#form-request-validation)或使用Assert库进行验证(https://github.com/beberlei/断言)。希望对你有帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何通过另一个函数将参数传递给资源控制器中的show()方法

如何将列表中的对象传递给另一个控制器索引函数?

如何将值从模型中的方法传递到另一个方法,或将控制器中的控制器传递给Rails

我如何发送选择时的下拉值作为参数传递给同一控制器中的另一个函数;角度的

将返回数据传递到同一控制器laravel中的另一个函数

laravel 5.7 如何将一个控制器的变量 id 传递给另一个

如何将函数作为参数传递给 Javascript 中的另一个函数?

Laravel 7 将数据传递给另一个控制器

如何将&rest参数传递给emacs lisp中的另一个函数?

如何将数组快速传递给另一个视图控制器?

如何获取ID以在控制器laravel中的另一个函数中使用

在shell中的另一个函数内部调用参数时如何将参数传递给函数

单击行中的锚标记时如何将行值传递给另一个 angularjs 控制器

如何在CakePHP 3中将数据从一个控制器传递到另一个控制器?

在Rust中,我如何将发散函数作为参数传递给另一个函数

我应该如何使用 Kotlin 将 lambda 函数作为参数传递给 Android 中的另一个函数

Laravel - 如何将参数从控制器传递到路由并在另一个控制器中使用它?

如何将 varbinary(max) 值作为参数从视图传递到控制器中的 actionmethod 并将其保存到另一个表

如何从已作为参数传递给另一个函数的函数中捕获异常

Laravel 5中另一个控制器的Access Controller方法

如何将一个数组从jsp页面中的JavaScript函数传递给控制器类?

如何使用Codeigniter的Session变量将一个控制器传递给另一个控制器

如何将值从视图传递到MVC ASP .NET中的另一个控制器

laravel 9.x 将控制器变量传递给另一个文件

如何在 PHP 中调用另一个控制器文件中的函数?

如何将mean()作为输入参数传递给Python中的另一个函数?

C ++线程:如何使用lambda函数将主线程中的参数传递给另一个线程

如何将参数发送到另一个控制器中的 GET API

如何在Laravel中将值从一个控制器传递给另一个控制器