Я использую Laravel. Мой UserController вызывает публичную функцию (validateToken), которая находится в верхней части контроллера. Я вызываю свою функцию из другой общедоступной функции, но она ничего не возвращает.
это мой код:
use App\Comment;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function validateToken($token)
{
$user = User::where('token', $token)->first();
if(!isset($user))
{
return array(
'message' => "These credentials do not match our records.",
'success' => false
};
}
}
public function register(Request $request)
{
$input = Input::all();
$this->validateToken($input['token']);
return array(
'message' => 'Your account has been created successfully and is ready to use',
'token' => $input['token'],
'success' => true
);
}
Работает, если код validateToken находится внутри функции регистра
Какой метод вы вызываете из других классов?
validateToken()
все равно должен быть в отдельном классе. Поместите его в модель User, например:
// \App\User model
public static function isValidToken($token)
{
$user = self::where('token', '=', (string)$token)->first();
return [
'success' => $user !== null,
'message' => $user === null
? 'These credentials do not match our records.'
: 'User found, token is valid',
];
}
Теперь вы можете получить доступ к этому методу из любого места в вашем приложении Laravel:
$check_token = User::isValidToken('my-token');
Вы должны обработать возвращаемое значение после вызова этой функции.
use App\Comment;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Validator;
class UserController extends Controller
{
public function validateToken($token)
{
$user = User::where('token', $token)->first();
if(!isset($user))
{
return array(
'message' => "These credentials do not match our records.",
'success' => false
};
}else {
return array(
'message' => 'Your account has been created successfully and is ready to use',
'token' => $token,
'success' => true
);
}}
public function register(Request $request)
{
$input = Input::all();
return $this->validateToken($input['token']);
}
}