控制器中的函数调用方式

时间:2018-10-03 11:12:29

标签: laravel function

在下面的代码中,

我在另一个Controller中调用一个函数。像我一样是这样做的好方法吗?

public function result(Request $request)
{
    $request->validate([
        'username' => [
            'required', 'alpha_num', new ExistingUser, new UserNotAdmin
        ]
    ]);

    $username = $request->username;
    $user = User::where('name', $username)->select('id')->first();

    return (new InvitationController)->show($user->id);
}

2 个答案:

答案 0 :(得分:0)

相反,您可以通过使用与InvitationController中的show方法相对应的重定向操作来重定向它

redirect()->action(
    'InvitationController@show', ['id' => $user->id]
);

有关更多详细信息,请参见https://laravel.com/docs/5.7/redirects#redirecting-controller-actions

或者您可以使用

app(InvitationController::class')->show($user->id)

直接在控制器中访问其他控制器的功能

答案 1 :(得分:0)

是的,这是在控制器中调用函数的更好方法 无需使用laravel任何方法来创建InvitationController的实例。

return (new InvitationController)->show($user->id);