Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 6/7/8/9/10 » Не могу получить ответ по API » 07.12.2020 07:25:11

В config/cors
все закоментил

    // 'paths' => ['api/*', 'sanctum/csrf-cookie'],

    // 'allowed_methods' => ['*'],

    // 'allowed_origins' => ['*'],

    // 'allowed_origins_patterns' => [],

    // 'allowed_headers' => ['*'],

    // 'exposed_headers' => [],

    // 'max_age' => 0,

    // 'supports_credentials' => false,


Не помогло))

#2 Re: Laravel 6/7/8/9/10 » Не могу получить ответ по API » 07.12.2020 07:15:31

Middleware\VerifyCsrfToken Сюда добавил исключение

  protected $except = [
        'auth/login',
    ];
}

Результата нет(((

#3 Laravel 6/7/8/9/10 » Не могу получить ответ по API » 07.12.2020 04:41:12

Oleg54
Ответов: 2

Добрый день уважаемые форумчане))

НЕ пойму где туплю

Установил tymon/jwt

php artisan route:list
выдает

Domain | Method    | URI                    | Name             | Action                                                                 | Middleware |
+--------+-----------+------------------------+------------------+------------------------------------------------------------------------+------------+
|        | POST      | api/auth/login         |                  | App\Http\Controllers\AuthController@login                              | api        |


ЧЕРЕ VUE AXIOS шлю запрос



login(){
      
       axios

           .post("/auth/login", {
            email: this.auth.mail,
            password: this.auth.pass,
            login: this.auth.pass,
          })

          .then(response => {
              console.log(response);
          })
          .catch(error => {
            this.errored = true;
            console.log(error);
          })
          .finally(() => (this.loading = false));
    }

МАРШРУТЫ АПИШНЫЕ route/api

Route::group([

  'middleware' => 'api',
  'prefix' => 'auth'

], function ($router) {

  Route::post('login', 'App\Http\Controllers\AuthController@login');
  Route::post('logout', 'App\Http\Controllers\AuthController@logout');
  Route::post('refresh', 'App\Http\Controllers\AuthController@refresh');
  Route::post('me', 'App\Http\Controllers\AuthController@me');

});

ФУНКЦИЯ В САМОМ КОНТРОЛЛЕРЕ

 public function login()
    {
       return "ОТВЕТ";
        $credentials = request(['email', 'password']);

        if (! $token = auth()->attempt($credentials)) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        return $this->respondWithToken($token);
    }

ПОЛУЧАЮ ЕРОР 405

HTTP405: BAD METHOD — используемая HTTP-команда не поддерживается.
(XHR)POST — http://XXXX.tech/auth/login


Помогите новичку разобраться, куда копать,
Спасибо:)

#4 Re: Laravel 6/7/8/9/10 » Не видидит переменную обозначенную global » 11.11.2020 17:29:58

Не надо здесь global. Переменные попадают во внутренний scope замыкания с помощью usefunction ($item) use ($diametr) {а для новых стрелочных замыканий не понадобится даже этого, там все переменные доступны сразу.

Спасибо попробую))

#5 Re: Laravel 6/7/8/9/10 » Не видидит переменную обозначенную global » 11.11.2020 17:29:23

new offer - неправильно.strpos вернет 0 и фильтр отработает неправильно

Все вроде работает если переменную диаметр меняю на явный параметр, я не знаю как по другому создать экземпляр класса

#6 Laravel 6/7/8/9/10 » Не видидит переменную обозначенную global » 11.11.2020 13:45:35

Oleg54
Ответов: 5

Помогите функция обратного вызова метода фильтр не в какую не хочет видеть переменную $diametr


Route::post('diametr',  function (Request $request) {
   
    $diametr = (string)$request->diam;
    $offer = new offer();
    $col = $offer->all();
      $result = $col->filter(function ($item) {
        global $diametr;
        return strpos($item, $diametr);
    }); 



    return $result->all();

});

Подвал раздела