Laravel 5.5 PersonalAccessToken表新专栏

时间:2018-02-07 10:36:10

标签: php mysql laravel-5 vuejs2 laravel-passport

我设法在名为oauth_access_tokens的{​​{1}}表中添加了一个新列。我遇到的问题是当我试图将callback_url值传递给callback_url函数时。

createToken

VUEJS COMPONENT:

public function store(Request $request)
{

    $this->validation->make($request->all(), [
        'name' => 'required|max:255',
        'scopes' => 'array|in:'.implode(',', Passport::scopeIds()),
    ])->validate();

    return $request->user()->createToken(
        $request->name, $request->callback_url, $request->scopes ?: []
    );
}

在没有$ request-> callback_url的情况下工作正常但是使用额外的参数这是我要回来的错误。

  

糟糕!出了点问题!

     

类型错误:传递给Models \ User :: createToken()的参数2必须是   在UserAccessTokenController.php中调用的类型数组,给定的字符串   在第62行   的Symfony \组件\调试\异常\ FatalThrowableError /供应商/ laravel /护照/ SRC / HasApiTokens.php   64 {" file":" /UserAccessTokenController.php" ;," line":62," function":   " createToken"," class":" Models \ User"," type":" - >" } {"功能":   " store"," class":" UserAccessTokenController"," type":" - >" }

是否有人遇到过此问题或知道如何处理此问题。提前致谢。

2 个答案:

答案 0 :(得分:1)

函数 createToken()只接受两个参数。我通过创建 accessToken 然后使用新的 callback_url 值更新结果来解决我的问题。希望有所帮助。

 public function store(Request $request)
{

    $token = $request->user()->createToken(
        $request->name, $request->scopes ?: []
    );

    if ($request->callback_url){

        $url = $request->callback_url;

        $request->user()->tokens()->where( 'id', $token->token->id )->update( [
            'callback_url' => $url,
        ] );

    }

    return $token;

}

答案 1 :(得分:-1)

尝试将$ request-> callback_url转换为数组,如下所示:

(array)$request->callback_url