Задать вопрос
@lexstile

Как работает ф-ция url в laravel?

Есть метод авторизации:
// controller
    public function login(LoginRequest $request)
    {
        $client = Client::query()->where('password_client', 1)->first();
        $role = User::query()->ByUserEmail($request->email)->get()->value('role');

        $response = Http::asForm()->post(url('/').'/oauth/token', [
            'grant_type' => 'password',
            'client_id' => $client->id,
            'client_secret' => $client->secret,
            'username' => $request->email,
            'password' => $request->password,
            'scope' => $role,
        ]);

        if ($response->status() === 200) {
            return response()->json([
                'access_token' => $response['access_token'],
            ])->withCookie('refresh_token', $response['refresh_token'], 86400);
        }

        return $this->baseJson(success: false, message: ResponseHelper::error(__('auth.failed')), status: 400);
    }

// app.php

'url' => env('APP_URL', '')

На сколько я понял, ф-ция url('/') должна брать url из APP_URL, или нет?
Я установил в переменную APP_URL, но ф-ция ее игнорирует.
Берет верный URL, но неверный протокол (нужно - https, она берет http).

В чем может быть проблема и как исправить?

Laravel 9.
  • Вопрос задан
  • 177 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
@zvlad_vitamin
Чуток не так.
Вместо url('/') используй config('app.url')
Это как раз и есть 'url' => env('APP_URL', '')

А функция url() - это хелпер. Почитай про хелперы в документации.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
url() https://laravel.com/docs/10.x/helpers#method-url
Функция url генерирует полный URL для указанного пути:

$url = url('user/profile');
 
$url = url('user/profile', [1]);

Если путь не указан, возвращается экземпляр Illuminate\Routing\UrlGenerator:

$current = url()->current();
 
$full = url()->full();
 
$previous = url()->previous();
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы