Как вернуть массив после вызова функции в контроллере laravel

Я использую 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 находится внутри функции регистра

-1

Решение

Какой метод вы вызываете из других классов?

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');
0

Другие решения

Вы должны обработать возвращаемое значение после вызова этой функции.

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']);

}
}
0

По вопросам рекламы [email protected]