Laravel по-русски

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

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

#1 Re: Laravel 6/7/8/9/10 » Как подключить стили при переходе на Laravel 8? » 23.12.2021 20:20:11

https://mb4.ru/frameworks/laravel/artic … k-css.html

Нашел такую статью.

Ответы на многие вопросы нашел.

Зачем нужна функция mix() в Laravel 8?

#2 Re: Laravel 6/7/8/9/10 » Как подключить стили при переходе на Laravel 8? » 23.12.2021 20:08:14

Есть нормальная статья в интернете: зачем в Laravel 8 перенесли app.css из папки public в resourses?
И как подключать свои стили?

#4 Laravel 6/7/8/9/10 » Как подключить стили при переходе на Laravel 8? » 19.12.2021 18:01:55

RsbAstana
Ответов: 5

Добрый день!
Перевожу свой проект Laravel с 7 на 8.
У меня в проекте на 7 были стили. Это файл public/css/app.css.
В новом проекте на Laravel 8 этого файла нет в структуре папок.
Зато есть resources/css/app.css. Сюда я и скопировал свои стили.

На 7-ке я подключал файл стилей:

<link href="{{ asset('css/app.css') }}" rel="stylesheet">

На 8-ке установил Laravel Mix и подключаю:

<link href="{{ mix('css/app.css') }}" rel="stylesheet">

В рез-те таблица стилей не подключена.
Предпросмотр таблицы показывает:

<link href="/css/app.css" rel="stylesheet">

Содержимое файла webpack.mix.js:

mix.js('resources/js/app.js', 'public/js')
    .sass('resources/sass/app.scss', 'public/css')
    .sourceMaps();

Файлы которые были сгенерированы в public/css удалил (там было не то, что нужно) , заново не генерируются.

Как подключить стили при переходе на Laravel 8?

#5 Re: Laravel 6/7/8/9/10 » Ошибка "The GET method is not supported for this route" при использова » 30.08.2021 16:40:25

Нашел решение:
Я добавлял токен, только брал его из таблицы personal_access_tokens,
а надо было тот который возвращает роут /login.

На видео в конце показано как добавлять токен при роуте:
https://www.youtube.com/watch?v=PcZmv1AOfFo

#6 Re: Laravel 6/7/8/9/10 » Ошибка "The GET method is not supported for this route" при использова » 30.08.2021 11:38:10

Это нормально два Middleware: api и App\Http\Middleware\Authenticate:sanctum?

+--------+-----------+--------------------------------------------------------+--------------------+------------------------------------------------------------+------------------------------------------+
| Domain | Method    | URI                                                    | Name               | Action                                                     | Middleware                               |
+--------+-----------+--------------------------------------------------------+--------------------+------------------------------------------------------------+------------------------------------------+
|        | GET|HEAD  | /                                                      |                    | Closure                                                    | web                                      |
|        | GET|HEAD  | api/test                                               |                    | App\Http\Controllers\IndexController@test                  | api                                      |
|        | POST      | api/v1/auth/login                                      | login              | App\Http\Controllers\Auth\LoginController@login            | api                                      |
|        | POST      | api/v1/auth/register                                   |                    | App\Http\Controllers\Auth\RegisterController@register      | api                                      |
|        | POST      | api/v1/cabinet/logout                                  | logout.api         | App\Http\Controllers\CabinetController@logout              | api                                      |
|        |           |                                                        |                    |                                                            | App\Http\Middleware\Authenticate:sanctum |
|        | GET|HEAD  | api/v1/cabinet/user                                    |                    | App\Http\Controllers\CabinetController@userdata            | api                                      |
|        |           |                                                        |                    |                                                            | App\Http\Middleware\Authenticate:sanctum |

#7 Re: Laravel 6/7/8/9/10 » Ошибка "The GET method is not supported for this route" при использова » 30.08.2021 11:35:23

Пробовал php artisan route:list и php artisan route:clear разные варианты - рез-т тот же.

#8 Laravel 6/7/8/9/10 » Ошибка "The GET method is not supported for this route" при использова » 29.08.2021 21:59:32

RsbAstana
Ответов: 6

Всем привет!
Laravel 8 с установленным Laravel Sanctum, PHP 7.3
У меня в проекте выходит
Ошибка "The GET method is not supported for this route" при использовании Laravel Sanctum.
Api.php:

Route::middleware('auth:sanctum')->get('/v1/cabinet/user', [CabinetController::class, 'userdata']);

CabinetController:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class CabinetController extends Controller
{
    public function userdata(Request $request)
    {
        return $request->user();
    }

    public function logout()
    {
        if (Auth()->check()) {
            Auth::user()->token()->delete();
            return response([
                'message' => 'Пользователь разлогинен',
            ], 200);
        }
    }

}
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException: The GET method is not supported for this route. Supported methods: POST. in file C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php on line 117

#0 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php(103): Illuminate\Routing\AbstractRouteCollection->methodNotAllowed(Array, 'GET')
#1 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\AbstractRouteCollection.php(40): Illuminate\Routing\AbstractRouteCollection->getRouteForMethods(Object(Illuminate\Http\Request), Array)
#2 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\CompiledRouteCollection.php(144): Illuminate\Routing\AbstractRouteCollection->handleMatchedRoute(Object(Illuminate\Http\Request), NULL)
#3 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\Router.php(647): Illuminate\Routing\CompiledRouteCollection->match(Object(Illuminate\Http\Request))
#4 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\Router.php(636): Illuminate\Routing\Router->findRoute(Object(Illuminate\Http\Request))
#5 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Routing\Router.php(625): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#6 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(166): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#7 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#8 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#9 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#10 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle(Object(Illuminate\Http\Request), Object(Closure))
#11 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#12 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#13 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle(Object(Illuminate\Http\Request), Object(Closure))
#14 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#15 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#16 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#17 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle(Object(Illuminate\Http\Request), Object(Closure))
#18 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\fruitcake\laravel-cors\src\HandleCors.php(52): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Fruitcake\Cors\HandleCors->handle(Object(Illuminate\Http\Request), Object(Closure))
#20 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Http\Middleware\TrustProxies.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#21 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(167): Illuminate\Http\Middleware\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#22 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#23 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(141): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#24 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#25 C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backend\public\index.php(52): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#26 {main}

Как исправить?

#10 Re: Laravel 6/7/8/9/10 » Класс контроллера не найден » 13.08.2021 17:55:05

Вопрос решен:

Route :: resource( '/v1/characters', CharacterController :: class );

#11 Laravel 6/7/8/9/10 » Класс контроллера не найден » 13.08.2021 13:26:21

RsbAstana
Ответов: 1

Здравствуйте!
У меня такая проблема - не найден CharacterController

Illuminate\Contracts\Container\BindingResolutionException: Target class [CharacterController] does not exist. in file C:\Users\HP\Desktop\RS\OSPanel\domains\rick_and_morty_backen d\vendor\laravel\framework\src\Illuminate\Container\Containe r.php on line 875

Текст контроллера:

<?php
 
namespace App\Http\Controllers;
 
use Illuminate\Support\Facades;
use Illuminate\Support\Facades\App;
use Illuminate\Http\Request;
use App\Models\Character;
 
class CharacterController extends Controller
{
    function characters()
    {
        $characters = Character::orderBy('name')->get();
        return response()->json($characters);
    }
}

Ошибка возникает в api.php:

<?php
 
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\CharacterController;
 
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
 
Route::middleware('auth:api')->get('/user', function (Request $request) {
    return $request->user();
});
 
//Route::resource('/v1/characters', '\App\Http\Controllers\CharacterController');
 
Route::resource('/v1/characters', 'CharacterController');

Если здесь

//Route::resource('/v1/characters', '\App\Http\Controllers\CharacterController');

убрать комментарий - сообщения, что класс контроллера не найден, нет.

#12 Laravel 6/7/8/9/10 » Список класса Items в той последовательности что в коллекции $collecti » 01.04.2021 08:33:57

RsbAstana
Ответов: 0

Добрый день!

Не могу в интернете найти решение:

Есть коллекция:
Она заполняется в функции у меня

$links = Item::where()... с моими фильтрами
$links = Link::where()... с моими фильтрами

$collection = collect();

$str = "";
foreach ($items as $item) {
$str = "";
foreach ($links as $link) {
$item_find = GlobalController::view_info($item->id, $link->id);
$str = $str . trim($item_find['name']);
}
}
// В $collection сохраняется в key - $item->id
$collection[$item->id] = $str;
}

// Сортировка коллекции по значению
$collection = $collection->sort();

примерно так заполняется(для примера):
$collection = ['Fff', 'Aaa', 'Bbb', 'Zzz', 'Ggg'];
В качестве ключей коллекции - коды $item->id

Потом сортируется по наименованию:
$collection = $collection->sort();

$collection = ['Aaa', 'Bbb', 'Fff', 'Ggg', 'Zzz'];

И мне нужно получить список всех Items с такими кодами и в такой же последовательности как в коллекции.

(Сортировать типа в Item::all()->orderBy - этот вариант мне не подходит, результат есть в коллекции)

Вот команда:
$results = Item::whereIn('id',$collection->keys())->get();

Она работает, но мне нужно список Items в той последовательности что в коллекции $collection,
т.е. в алфавитном порядке,
а она возвращает в том порядке, в котором сохранены в таблице базы данных.

Как это сделать? Список Items в той последовательности что в коллекции $collection?

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