Laravel по-русски

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

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

#2 Laravel 6/7/8/9 » Иногда 500 ошибка, в логе No application encryption key has been... » 04.01.2022 16:01:58

GTX
Ответов: 2

Сделал для себя приложение, которое работает на локальном компьютере, есть одна страница, с которой идет очень много ajax запросов на другую страницу, все работает, но иногда я получаю 500 ошибку, где то 1 раз в 50-100-200 запросов, в логах:

[2022-01-04 12:15:23] production.ERROR: No application encryption key has been specified. {"exception":"[object] (Illuminate\\Encryption\\MissingAppKeyException(code: 0): No application encryption key has been specified. at W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php:79)
[stacktrace]
#0 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Support\\helpers.php(263): Illuminate\\Encryption\\EncryptionServiceProvider->Illuminate\\Encryption\\{closure}()
#1 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php(81): tap()
#2 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php(60): Illuminate\\Encryption\\EncryptionServiceProvider->key()
#3 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Encryption\\EncryptionServiceProvider.php(32): Illuminate\\Encryption\\EncryptionServiceProvider->parseKey()
#4 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(829): Illuminate\\Encryption\\EncryptionServiceProvider->Illuminate\\Encryption\\{closure}()
#5 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(714): Illuminate\\Container\\Container->build()
#6 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(841): Illuminate\\Container\\Container->resolve()
#7 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(652): Illuminate\\Foundation\\Application->resolve()
#8 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(826): Illuminate\\Container\\Container->make()
#9 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(987): Illuminate\\Foundation\\Application->make()
#10 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(907): Illuminate\\Container\\Container->resolveClass()
#11 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(868): Illuminate\\Container\\Container->resolveDependencies()
#12 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(714): Illuminate\\Container\\Container->build()
#13 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(841): Illuminate\\Container\\Container->resolve()
#14 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Container\\Container.php(652): Illuminate\\Foundation\\Application->resolve()
#15 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Application.php(826): Illuminate\\Container\\Container->make()
#16 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(156): Illuminate\\Foundation\\Application->make()
#17 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#18 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(697): Illuminate\\Pipeline\\Pipeline->then()
#19 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack()
#20 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(636): Illuminate\\Routing\\Router->runRoute()
#21 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#22 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#23 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#24 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#25 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#26 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#27 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#29 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#30 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#31 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#32 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#33 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#34 W:\\domains\\site.local\\vendor\\fruitcake\\laravel-cors\\src\\HandleCors.php(38): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#35 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#36 W:\\domains\\site.local\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#38 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#40 W:\\domains\\site.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#41 W:\\domains\\site.local\\public\\index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#42 {main}
"} 

в гугле находит информацию где всегда выдает эту ошибку, а у меня только иногда, а так все стабильно работает, как надо.
Что это может быть? как это исправить?

думаю будет важной информацией: в laravel я не силен, делал методом тыка, работает и сойдет, по этому всякие конфиги либо не настраивал либо минимально настраивал.

в файле config\app.php

'key' => env('APP_KEY'),

в .env (ключ немного изменен, но он есть)

APP_KEY=base64:BIfnCyZe9uzGkCQ64kME9rZ+dBYWRZJ27I9uMrNb8b0=

#3 Re: Laravel 5.x » Прошу помощи как реализовывать классы в laravel » 24.07.2017 22:28:28

GTX

Мне кажется тут проблема не в ORM а в том, что у автора нет понимания MVC, по этому надо сначала подучить MVC, еще в него вникнуть.

#4 Re: Laravel 5.x » Как работает этот кривой валидатор » 24.07.2017 18:28:23

GTX

Во, отличный ответ на вопрос

по каким принципам вообще существует этот валидатор

Большое спасибо covobo, теперь понятно что к чему.

И Вам constb тоже спасибо, все же в этой ссылке https://laravel.com/docs/5.4/validation#rule-unique есть что то новое и полезное.

#5 Re: Laravel 5.x » Как работает этот кривой валидатор » 24.07.2017 17:24:01

GTX

Что я понял не так? можно использовать $this->validate, можно создавать валидатор в ручную - https://laravel.ru/docs/v5/validation#% … 0%BE%D0%B2, я решил создать вручную, потом решил ему добавить ошибку вручную, оно в коде не добавляет, а в другом коде добавляется, при каких обстоятельствах я описал.

Касаемо unique я в курсе, но я просил не вдаваться в это, раз делаю без этой проверки, значит оно так надо. Я не хочу приводить примеры почему так, потому что Вы будите обсуждать их (эти примеры), а не сам вопрос.
Где в 3-х строчках кода я наколхозил?

#6 Laravel 5.x » Как работает этот кривой валидатор » 24.07.2017 16:47:24

GTX
Ответов: 4
$validator = \Validator::make(['some key' => 'some value'], [], []);
$validator->errors()->add('error key', 'some error');
dd( [$validator->fails(), $validator->errors()->all()] );

По моей логике fails() должно возвращать TRUE, а errors()->all() должно возвращать массив [ 'error key' => ['some error'] ], но все на оборот, возвращает FALSE (ошибок нет), и пустой массив с ошибками, почему так?

причем, по не понятным причинам в каких то других местах этот чудо валидатор работает, т.е. я сначала проверяю допустим электронный адрес, на то что бы он был задан, что бы длина подходила, что бы был электронным адресом, а потом ОТДЕЛЬНО проверяю по БД не занят ли этот адрес, и если занять то через IF

$validator->errors()->add('user_email', 'электронный адрес уже занят');

оно уже срабатывает.

Я знаю о существовании такой штуки как:

$validator->after(function($validator) {
    $validator->errors()->add('error key', 'some error');
});

но почему не работает просто errors add, а в других местах работает, по каким принципам вообще существует этот валидатор.

PS просьба не задаваться вопросом почему я изначально при валидации не задавал правил и сообщений об ошибке, не об этом вопрос.
Так же просьба не задаваться вопросом зачем я отдельно проверяю данные по БД и через IF добавляю ошибку, если можно в валидаторе задать эту проверку, раз делаю значит надо именно так.

#7 Re: Laravel 5.x » Blade, отрисовать (получить Html разметку) только одну секцию » 23.06.2017 19:23:35

GTX

Во-первых вставляя просто HTML Разметку, данный вставщик будет минимум кода и он может быть универсальным для многих страниц, т.е. без изменения кода вообще, а там где

div id="error"

надо прописывать эти id

+ мы можем возвращать не ошибки, а на оборот сообщение об успехе, типа регистрация прошла успешно.

Во вторых

$html = view('name', $data)->render(); // Тут теряем время

и много времени теряем?

У каждого свой подход, мне ближе минимизация работы с JS (не отказ и не в ущерб приложению) и больше работы с РНР, по мне он куда надежнее и предсказуем чем JS.

#8 Re: Laravel 5.x » Blade, отрисовать (получить Html разметку) только одну секцию » 23.06.2017 15:33:03

GTX

Proger_XP? так можно это как то сделать? потому что мне на ум приходят какие то совсем костыли, что аж страшно представить.
что то типа в файле реализации подключать еще 1 фал как раз с  этой формой, т.е. получается какая то такая хрень:
Реализация шаблона:

@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
    @parent

    <p>Это дополнение к основной боковой панели.</p>
@endsection

@section('content')
    @include('form')
@endsection

А уже в файле form держать эту форму без всяких extends, а в случае необходимости получить форму я просто делаю рендер файла form.
Но это ппц какой то.

#9 Re: Laravel 5.x » Blade, отрисовать (получить Html разметку) только одну секцию » 23.06.2017 14:49:22

GTX

Sergant210, печально, отрисовать не составляет труда, вставить тоже, минимум труда (кода в JS), а по вашему варианту гемороиться с кривым JS.

#10 Laravel 5.x » Blade, отрисовать (получить Html разметку) только одну секцию » 23.06.2017 12:54:27

GTX
Ответов: 12

Есть шаблон допустим:

<!-- Хранится в resources/views/layouts/app.blade.php -->
<html>
  <head>
    <title>App Name - @yield('title')</title>
  </head>
  <body>
    @section('sidebar')
      Это главная боковая панель.
    @show

    <div class="container" id="area">
      @yield('content')
    </div>
  </body>
</html>

И есть реализация в с формой допустим:

@extends('layouts.app')

@section('title', 'Page Title')

@section('sidebar')
    @parent

    <p>Это дополнение к основной боковой панели.</p>
@endsection

@section('content')
    <form method="POST">...</form>
    <div>тут вывожу ошибки если они есть..</div>
@endsection

Если я допустим хочу реализовать это через AJAX, загружается страница, я ввожу данные, через AJAX они отправляются на сервер и если там есть ошибки то я на стороне сервера отрисовываю только то что содержится в файле layouts.app.blade.php, а точнее только то что содержится в секции content, и отправить обратно, а там уже JS заменит содержимое div с id = area на то что пришло, как такое реализовать? как отрисовать только секцию content?

#11 Laravel 5.x » Валидация (Validator) до первой ошибки » 02.12.2016 16:55:48

GTX
Ответов: 1

Подскажите, допустим я прописываю правило,

'required|min:10|max:100'

и допустим еще что то, допустим значение не было задано, можно как то сделать что бы проверка на этом остановилась, что бы не проверялось и не заносилось в список ошибок что недопустимая минимальна длина и т.д.

#12 Re: Laravel 5.x » Middleware что может возвращать и обращение к другому методу » 21.11.2016 16:51:16

GTX

ну насчет вызываемого метода, это так, для общего развития.

а насчет вернуть view, я хотел сделать так, что бы посредник проверял была ли нажата кнопка отправки формы, если нет то просто подключить вид и все, а если была, то $next...

#13 Re: Laravel 5.x » view blade extends папка с шаблоном находится выше » 20.11.2016 22:04:31

GTX
hzone пишет:

тут были темы с примерами (я писал) конструкций.
начинай листать форум.

пролистал твои сообщения до 15 страницы, не нашел, может можно написать? а то мало ли, может не было такого ответа smile у меня такое иногда бывает, точно уверен что было, а на самом деле не было smile

#14 Laravel 5.x » Middleware что может возвращать и обращение к другому методу » 20.11.2016 21:24:13

GTX
Ответов: 2

2 вопроса.

первое, по умолчанию вызывается метод handle, можно как то сделать что бы вызываться какой то другой метод (ну смысле название метода который я передам, может я хочу один посредник использовать для нескольких проверок..)?
второе, что может возвращать посредник? по мимо

return $next($request);

в документации возвращает еще redirect, а вот если мне допустим надо вернуть вид (view)? такое возможно? я пробовал

return view($view);

но получаю ошибку (там что то с куками, но не в этом суть).

#15 Laravel 5.x » view blade extends папка с шаблоном находится выше » 20.11.2016 21:15:44

GTX
Ответов: 3

Здравствуйте, подскажите такую вещь, у меня шаблон располагается в:

view/layouts/template.blade.php

а файл в котором подключается этот шаблон расположен в:

view/service/login.blade.php

что мне надо прописывать в @extends?

#16 Re: Laravel 5.x » За место БД - файлы » 23.05.2015 20:51:42

GTX

Tantacula большое спасибо за информацию, у меня очень специфическое приложение, там не надо будет делать выборки и надо будет получать данные файла целиком, по этому вроде как просто файлы .php подходят идеально, единственно что я не учитываю, это возможно проверка файла при загрузке на синтаксические ошибки может выйти боком, ведь БД то ни чего не проверяет, там все ок.

#17 Laravel 5.x » За место БД - файлы » 21.05.2015 12:15:38

GTX
Ответов: 4

Здравствуйте!
Подскажите такую вещь мне надо хранить некие данные но не в БД, а в файлах в самом приложении, что за файлы будут я пока не знаю (в смысле в каком формате) скорее всего php (в виде массива при помощи var_export) или txt или xml (хотя xml точно не будет, для формы про них упомянул).

Подскажите возможно ли это сделать с помощью Laravel, для примера мне нужно сделать что то типа сайта визитки где данные будут хранится в не в БД, а в файлах.
Где хранить такие файлы, какими классами пользоваться и вообще..

PS просьба только не уговаривать воспользоваться БД, у меня такое приложение где надо будет считывать все данные в файле, выборку не надо будет делать и надо что бы все работало как можно быстрее, вроде как это будет быстрее непосредственно через файл, чем через БД. Да и мне в этом конкретном случае будет удобнее работать с файлами.

#18 Re: Веб-разработка » Структура базы даных для CMS » 16.03.2015 22:03:14

GTX

Мне очень понравилась устройство БД у Wordpress, все просто и при этом в этой БД можно реализовать почти все, что захочешь, не создавая новых таблиц.

#19 Laravel 5.x » Laravel 5 - уроки » 13.03.2015 18:51:31

GTX
Ответов: 9

Большая просьба, сделайте уроки по Laravel 5 для начинающих, для тех, кто ни когда не работал с фреймворками, т.к. те уроки что встречал, рассчитаны для людей которые знакомы с фреймворками, причем с достаточно сложными, такими как Yii, допустим в них не объясняется что такое миграции и еще много всего.

Кто-то может сказать что Laravel достаточно сложный фреймворк и надо начать изучение фреймворков с чего-то более просто, сейчас к сожалению сложилась такая ситуация что из простых фреймворков (у которых есть РУ сообщество и РУ документация), которые понятны есть только CodeIgniter, но он мертв, на форуме (РУ) ни кто не отвечает, а без возможности задавать вопросы это бессмысленно.

А перевод уроков Laracasts на русский тут https://laravel.ru/tags/Laracasts пока не полный.

#20 Re: Laravel 5.x » Установка через Composer - ошибка, нет папки vendor » 12.03.2015 12:20:11

GTX

composer update

это я пробовал еще тогда, не помогло, да и на сколько я понимаю данная команда обновляет проект, а не composer

composer self-update

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

PS я просто не думал что из-за устаревшего composer не будет закачиваться файлы, я думал если он устаревший, значит ни чего качать не должен, а тут что то качает, значит все нормально, т.е. я даже не рассматривал такой вариант, что composer устаревший.

Всем спасибо за участие и помощь.

#21 Laravel 5.x » Установка через Composer - ошибка, нет папки vendor » 11.03.2015 22:33:07

GTX
Ответов: 4

- использую OpenServer, последнею версию
- раньше ни когда не пользовался Composer
- раньше ни когда не использовал фреймворки, решил с чего то начать, хотел с CodeIgniter (т.к. он прост и понятен), но он вроде как мертвый, я даже на форуме не смог зарегистрироваться, письмо с кодом не приходит, решил остановиться на Laravel

Собственно что я делал, в консоли перехожу в интересующую меня папку, и ввожу в консоли:

composer create-project laravel/laravel --prefer-dist

загружаются файлы, после я перехожу в папку public, открываю в браузере index.php и получаю ошибку, что не удается подключить autoload.php из папки vendor, я начинаю искать эту папку и тут выясняется что данная папка (vendor) отсутствует, я попытался найти как решить эту ошибку в гугле, но ни чего подобного нет, нашел видео с установкой laravel, там таких ошибок не было (хотя там скорее всего 4-ю версию устанавливали), подскажите как быть, что делать, кто виноват меня не особо интересует smile

Вот лог установки:
Тест BBcode

Вот файлы которые я получаю:
Тест BBcode

#22 Laravel 5.x » Возможно ли реализовать многосайтовость на Laravel? » 11.03.2015 00:52:04

GTX
Ответов: 3

Собственно возможно ли реализовать многосайтовость (многодоменность / мультисайтовость / мультисайтинг / многосайтовость), технические требования примерно такие:
- на одной копии файлов (т.е. что бы под каждый сайт не копировать все файлы)
- для каждого сайта отдельная таблица (таблицы) в БД
- использование разных доменных имен и поддоменов (site1.ru sute2.ru forum.site2.ru и т.д.)

PS то, что надо настраивать apache я в курсе, скажем так полный доступ к настройкам apache есть.

И если да (а скорее всего да), на сколько это затруднительно? все просто или это будут костыли?

#23 Laravel 5.x » Документация на русском » 11.03.2015 00:34:40

GTX
Ответов: 3

Подскажите, ни кто не в курсе, скоро появится русскоязычная документация на 5-ю версию?

Вот решил выучить данный фреймворк и тут попал на такой стык версий, почитал статью на habrahabr и как вычитал, много изменений по сравнению с 4-й версией, по-этому желательно 5-ю учить сразу, а с английским у меня туговато.

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