1
マイlaravelバージョン:5.2ベンダークラスファイルを上書きする方法は?
私はtymondesigns/JWT-AUTH例えばGetUserFromToken.php
\vendor\tymon\jwt-auth\src\Middleware\GetUserFromToken.php
class GetUserFromToken extends BaseMiddleware
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, \Closure $next)
{
if (! $token = $this->auth->setRequest($request)->getToken()) {
return $this->respond('tymon.jwt.absent', 'token_not_provided', 400);
}
を上書きしたい、私はトークンが提供されていないときにカスタムメッセージを返すようにしたいです。私はどのように私は、ベンダーのGetUserFromToken.phpを上書きするカスタムクラスを作成する必要があり、このファイルを直接変更することはできませんので、
if (! $token = $this->auth->setRequest($request)->getToken()) {
return my_custom_message;
}
?
可能であれば、必要な手順を詳細に記述してください。ありがとう。
更新#2
Kernel.php
protected $routeMiddleware = [
'jwt.auth' => \App\Http\override\MyGetUserFromToken::class,
私は、以下のディレクトリにGetUserFromToken.phpを作成しました。
class MyGetUserFromToken extends GetUserFromToken
とKernel.php
でこのクラスをリスト: MYPROJECT \アプリ\のHttp \それは単にミドルウェアですので、あなただけのこのクラスを拡張することができるはずです\ MyGetUserFromToken.phpに
<?php
namespace App\Services\Middleware;
use Tymon\JWTAuth\Middleware\GetUserFromToken;
class MyGetUserFromToken extends GetUserFromToken
{
public function handle($request, \Closure $next)
{
if (! $token = $this->auth->setRequest($request)->getToken()) {
return my_custom_message;
}
、あなただけの 'クラスMyGetUserFromTokenがGetUserFromToken'を拡張し、このクラスを拡張して、ミドルウェアとしてKernel.phpでこのクラスを一覧表示することができるはずです。このように '' jwt.auth '=> App \ MyGetUserFromToken :: class、 ' –
こんにちは、Container.php行のReflectionExceptionが734: クラスApp \ Http \ override \ MyGetUserFromTokenは存在しません" 2。このアイデアの原因は何ですか? – ethan17
ファイルが実際に存在していて、入力ミスがないことを確認してください。大文字の使用を含む。例えば、Override vs override? –