Laravel по-русски

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

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

#1 Re: Laravel 5.x » Проблемы с регистрацией/авторизацией » 24.02.2019 01:57:27

Вообще похоже на редирект
Т.е. он получает редирект и до базы ничего не доходит

#2 Laravel 5.x » Ошибка при отправке почты » 16.01.2019 19:11:23

spamarmy
Ответов: 0

Ларавел последний.
Пхп 7.1
win10
open server panel

Код использовался уже не один год.
Но в какое то время перестал работать - когда именно хз но относительно недавно.
Думаю это из за обновления Ларавел.

Сам код отправки

        Mail::send($this->params['view'], $this->params['data'], function ($message) {
            $message->
            from($this->params['from'], mb_encode_mimeheader($this->params['fromName'], 'UTF-8'))->
            to($this->params['to'])->
            subject($this->params['subject']);

            if (count($this->params['attach'])) {
                foreach ($this->params['attach'] as $display => $pathToFile) {
                    $message->attach($pathToFile, ['as' => $display, 'mime' => \File::mimeType($pathToFile)]);
                }
            }
        });

Вот что выдает в логах

[2019-01-16 16:04:22] local.ERROR: Process could not be started [⥬  㤠  㪠 .
]  
[2019-01-16 16:04:22] local.ERROR: Malformed UTF-8 characters, possibly incorrectly encoded {"userId":1,"email":"example@mail.ru","exception":"[object] (InvalidArgumentException(code: 0): Malformed UTF-8 characters, possibly incorrectly encoded at D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\JsonResponse.php:75)
[stacktrace]
#0 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\symfony\\http-foundation\\JsonResponse.php(50): Illuminate\\Http\\JsonResponse->setData(Array)
#1 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Http\\JsonResponse.php(31): Symfony\\Component\\HttpFoundation\\JsonResponse->__construct(Array, 500, Array)
#2 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php(435): Illuminate\\Http\\JsonResponse->__construct(Array, 500, Array, 192)
#3 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Exceptions\\Handler.php(187): Illuminate\\Foundation\\Exceptions\\Handler->prepareJsonResponse(Object(Illuminate\\Http\\Request), Object(Swift_TransportException))
#4 D:\\Ivan\\OSPanel\\domains\\profplay.local\\app\\Exceptions\\Handler.php(49): Illuminate\\Foundation\\Exceptions\\Handler->render(Object(Illuminate\\Http\\Request), Object(Swift_TransportException))
#5 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(83): App\\Exceptions\\Handler->render(Object(Illuminate\\Http\\Request), Object(Swift_TransportException))
#6 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(32): Illuminate\\Routing\\Pipeline->handleException(Object(Illuminate\\Http\\Request), Object(Swift_TransportException))
#7 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Middleware\\SubstituteBindings.php(41): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#8 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#9 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#10 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Auth\\Middleware\\Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#11 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#12 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#13 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken.php(75): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#14 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#15 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#16 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\View\\Middleware\\ShareErrorsFromSession.php(49): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#17 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#18 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#19 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Session\\Middleware\\StartSession.php(63): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#20 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#21 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#22 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse.php(37): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#23 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Cookie\\Middleware\\EncryptCookies.php(66): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#26 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#27 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#28 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#29 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(684): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#30 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(659): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#31 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(625): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#32 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Router.php(614): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#33 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(176): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#34 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(30): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#35 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\fideloper\\proxy\\src\\TrustProxies.php(57): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#36 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#37 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#38 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#39 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#40 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest.php(31): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#42 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#43 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#44 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize.php(27): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#45 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode.php(62): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#48 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(151): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#49 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#50 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Pipeline\\Pipeline.php(104): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#51 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#52 D:\\Ivan\\OSPanel\\domains\\profplay.local\\vendor\\laravel\\framework\\src\\Illuminate\\Foundation\\Http\\Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#53 D:\\Ivan\\OSPanel\\domains\\profplay.local\\public_html\\index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#54 {main}
"} 

#3 Re: Laravel 5.x » Как правильно сделать и использовать небольшой сервис в ларавеле. » 17.11.2018 19:38:04

Крошки это только пример.
Но как их заполнять тогда - во вью передавать все данные?

Сейчас я просто не пойму как везде использовать
Breadcrumbs
не вписывая
use App\Extensions\Breadcrumbs\Breadcrumbs;

#4 Re: Laravel 5.x » debug mode » 17.11.2018 16:32:06

$_SERVER['REMOTE_ADDR'] == '111.111.111.111' ? true : false

Эта часть выполнится только если 'APP_DEBUG' не указана.

Так что так неправлиьно.

Вроде бы правильно наоборот

$_SERVER['REMOTE_ADDR'] == '111.111.111.111' ? true : env('APP_DEBUG')

Т.е. если адрес какой нужно то дебуг будет тру иначе взять из енва

#5 Re: Laravel 5.x » Как правильно сделать и использовать небольшой сервис в ларавеле. » 17.11.2018 16:29:31

Снова вернулся к этому вопросу.

2) Как правильно сделать, чтобы в контроллерах не использовать везде
use App\Extensions\Breadcrumbs\Breadcrumbs;

Сейчас я придумал тока добавить его в композер - автолоад - файлс - но это как то неправильно.

#6 Re: Laravel 5.x » User из ларавлел 5.6 в стороннем проекте » 09.08.2018 19:30:04

Ну пока я планирую в старую часть сайта ларавел не использовать вообще - ибо согласен - гемор изрядный.

Пока у меня такой план - при логине в старый части формировать куку\сессию не только для старой версии но и для новой.
И соответственно в новой формировать не тока для новой но и для старой.

Но скорее всего и на это забью.

Просто в старой версии сделаю вход совместимый с ларавелем - соответственно пароли да - похерим.

Можно будет делать проверку - типа если по новому не логиниться - то логиним по старому -
но пароль - хеш при этом генерим - чтобы с следующий раз логинило по новому.

По крайней мере это избавит от поддержки двух версий логинов в перспективе.

Но даже как к этому приступить тоже не совсем понимаю.

#7 Laravel 5.x » User из ларавлел 5.6 в стороннем проекте » 08.08.2018 18:54:38

spamarmy
Ответов: 3

Добрый день.

Хочу переводить древний сайт на ларавел 5.6.

Решил делать это по роутам - через хтаксесс - просто отправлять новые роуты на другой индекс пхп - от ларавеля.
НУ и потихоньку и старые тоже.

И возникло много вопросов - по использованию компонентов ларавел отдельно от него самого.

Из них главный - чтобы начать - как сделать совместимого пользователя - чтобы чел залогиненный в старой версии был виден в новой и наоборот?

Вся суть сводится к выставлению правильных кук в старой версии для ларавеля, в ларавеле для старой версии.
Я готов переписать алгоритм в старой версии - чтобы не поддерживать 2 паралельно.

Может есть какой то пакет или алгоритм или как то по простому можно.

#8 Re: Laravel 5.x » Как правильно сделать и использовать небольшой сервис в ларавеле. » 22.06.2018 16:17:32

Этот пакет я смотрел:
https://github.com/davejamesmiller/laravel-breadcrumbs

Но решил что он слишком огромный для моих скромных нужд.

По поводу вопросов тогда оставляю один:

2) Как правильно сделать, чтобы в контроллерах не использовать везде
use App\Extensions\Breadcrumbs\Breadcrumbs;

Т.е. где то в одном месте прописать что надо.
И потом просто писать везде в коде: Breadcrumbs::add($post->full_url, $post->short_name);
или что нить подобное.

#9 Laravel 5.x » Как правильно сделать и использовать небольшой сервис в ларавеле. » 22.06.2018 15:34:49

spamarmy
Ответов: 5

Добрый день.
Ларавел 5.6

Написал небольшой код для breadcrumbs: (но именно это счас не важно.)

<?php

namespace App\Extensions\Breadcrumbs;


class Breadcrumbs
{
    static private $breadcrumbs = [
        '/' => 'Home',
    ];
    
    static function add(string $url, string $description): void
    {
        self::$breadcrumbs[$url] = $description;
    }

    static function render()
    {
        return view('extensions.breadcrumbs', [
            'breadcrumbs' => self::$breadcrumbs,
        ]);
    }

}

Использовать примерно так:
(в контроллере при выводе одной статьи)

use App\Extensions\Breadcrumbs\Breadcrumbs;

...

    public function single($id_key)
    {
        $post = Posts::where('id_key', $id_key)->first();

        Breadcrumbs::add($post->full_url, $post->short_name);

        return view('pages.single', [
            'row' => $post,
        ]);
    }

Во вьюхе так:

{!! Breadcrumbs::render() !!}

Добавил в алиасы в config/app.php

    'aliases' => [
...
        'Breadcrumbs' => App\Extensions\Breadcrumbs\Breadcrumbs::class,

Теперь вопросы:
1) Как можно инициализировать статический класс - чтобы например можно было бы подставить не home а главная - т.е. использовать конфиг или интернационализацию?
2) Как правильно сделать, чтобы в контроллерах не использовать везде
use App\Extensions\Breadcrumbs\Breadcrumbs;
3) Как сделать чтобы была вьюха для крошек по умолчанию но ее можно было бы при желании перекрыть?

Ну и может так в целом какие то советы.

Просто по аналогии с крошками я потом сделаю еще несколько блоков и наверно сделаю из них пакет.
И хочу разобраться на этом этапе - пока кода 20 строк.

#10 Re: Laravel 5.x » Https множественный редирект » 07.06.2018 22:46:17

На разных хостингах могут сработывать разные настройки хттпс редиректа

У меня что-то такое тоже не работало.
А вот такое отлично сработало.

# https
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Ну и если и это не сработает то в интернетах есть и еще варианты...

#11 Re: Laravel 5.x » Как лучше организовать настройки шаблона (views) » 07.06.2018 08:45:27

В зависимости от верстки. Я в нужных шаблонах наследовался от разных шаблонов.@extends('with_sidebar_layout')@extends('without_sidebar_layout')

Да пожалуй для этого случая это более правильно - разные шаблоны.

Но все равно вопрос- где хранить какие нить сквозные переменные для приложения.

#12 Laravel 5.x » Как лучше организовать настройки шаблона (views) » 06.06.2018 11:45:38

spamarmy
Ответов: 3

Добрый день.

laravel 5.6

Не могу понять как лучше сделать.

Есть в views переменная.
Допустим
with_sidebar

По умолчанию она должна быть true,
но для некоторых страниц - например для главной false

Во вьюхе понятно - можно сделать например так:

        @if($with_sidebar)
            <section id="primary" class="content-area">
                @include('layouts/main')
            </section><!-- #primary -->

            @include('layouts/sidebar')
        @else
            <section id="primary" class="content-area" style="width: 100%">
                @include('layouts/main')
            </section><!-- #primary -->
        @endif

Из вью тоже в общем понятно - просто передаем ее как false

А где лучше задать значение по умолчанию,
ну и может вообще весь список таких возможных параметров?

#13 Laravel 5.x » Автоматическая форма для модели ларавел » 14.05.2018 16:22:57

spamarmy
Ответов: 0

Добрый день.

Подскажите есть ли возможность автоматического генерирования форм для модели.

Объясняю на примере.

Я работаю со старым самописным фреймворком и там можно сделать примерно так

В модели:

    public function init()
    {
        $this->fields[$this->table] = array(
            'id'               => array(
                'label' => 'ID',
            ),
            'status'           => array(
                'label'      => 'Статус (status)',
                'default'    => 1,
                'field'      => 'radiogroup',
                'options'    => 'status_list',
                'user_group' => array(1),
            ),
            'uid'              => array(
                'default' => $this->user->id,
            ),
            'postdate'         => array(
                'label'   => 'Дата публикации (postdate)',
                'default' => time(),
            ),
            'title'            => array(
                'label' => 'Заголовок (title)',
                'field' => 'input',
                'rules' => 'trim|strip_tags|required|max_length[245]',
            ),
            'short_title'      => array(
                'label' => 'Краткий Заголовок (short_title)',
                'field' => 'input',
                'rules' => 'trim|strip_tags|required|max_length[245]',
            ),
            'category'         => array(
                'label'   => 'Категория (category)',
                'field'   => 'select',
                'options' => 'category_list',
                'default' => isset($this->category) ? $this->category : '',
            ),
            'body'             => array(
                'label' => 'Текст статьи (body)',
                'field' => 'html',
                'rules' => 'trim|required',
            ),
            'img'              => array(
                'label' => 'Фото (img)',
                'field' => 'file',
                'rules' => 'callback[model.' . $this->model_class . '.upload,img]',
            ),
        );
    }

причем status_list это  функция:

    public function status_list($val = NULL)
    {
        static $list = array(
            0 => 'Отключен',
            1 => 'Включен',
        );

        if ($val !== NULL) {
            return $list[$val];
        }

        return $list;
    }

и потом для любой модели можно вывести ее форму для создания или изменения с валидацией и т.д.

типа модель->form->render.

Есть ли в ларавел что нить такое? +-
Ну или пакет может быть какой нибудь похожий.

Чтобы для каждой модели форму не готовить - а описать ее подобным образом и всё?

#14 Re: Laravel 5.x » Https » 11.04.2018 10:04:42

Добрый день.
Хром автоматом переходит на https если домен ".dev"
Возможно есть и другие подобные.

Я использую ".local" все нормально.
Браузер ругается но работать дает.

#15 Re: Laravel 5.x » Как правильно хранить данные при модели но не для таблицы » 02.04.2018 21:36:32

Да в том то и дело, что неуверен.

И fillable и guarded подходят для выполнения задачи.

Но они предназначены для того чтобы в поле таблицы не записать что нить лишнее - опасное.

А тут ситуация как бы наоборот - в таблице нет таких полей. Но они есть в форме.

Наверно использую guarded.

Просто неужто такая вещь вообще никому не встречалась.

#16 Re: Laravel 5.x » Как правильно хранить данные при модели но не для таблицы » 01.04.2018 10:48:55

Данные получаются из формы для заполнения человеков.
Потом они попадают в модель человеков.
Это вполне удобно и в целом разумно, на текущий момент.
Я не хочу переделывать эту часть сейчас.

Но перед тем как сделать man->save()
мне приходится эти данные убирать, потому что в таблице в бд нету полей для этого.

unset($man->prices, $man->spo_id); //fixme: А то не сохранится man при бронировке.

а вот это уже как то нелогично и мне не нравится.
И вопрос про это.

#17 Laravel 5.x » Как правильно хранить данные при модели но не для таблицы » 31.03.2018 15:46:39

spamarmy
Ответов: 5

Добрый день.

Из формы я получаю поля которые относятся к модели
Например скидка пользователя - выбирается пенсионер, ребенок и т.п.

Но в таблице пользователей таких полей нет и они не нужны там.
В конечном итоге это информация о заказе.

Удобно хранить их на момент обработки с пользователем - чтобы по алгоритмам оно там было, но перед сохранением я делаю вот так:

unset($man->prices, $man->spo_id); //fixme: А то не сохранится man при бронировке.

И это как-то выглядит неправильно.

Как я понимаю можно использовать guarded - но вроде как он не для этого задуман.

Подскажите как правильнее это сделать?

#18 Re: Laravel 5.x » Докидывание миграций » 24.10.2017 11:31:26

Добрый день.
Можно просто в таблице migration заполнить нужные миграции как будто они уже были.

#19 Laravel 5.x » Проверка загруженного файла » 24.10.2017 11:30:21

spamarmy
Ответов: 1

Добрый день.
Ларавел 5.5

Загружаю файл через форму.

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

Не могу понять как это правильно сделать.

Создал отдельное правило:

<?php

namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class FileStructureRule implements Rule
{
    /**
     * Create a new rule instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Determine if the validation rule passes.
     *
     * @param  string $attribute
     * @param  mixed $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        return false;
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return trans('messages.projectFileValidation');
    }
}

В

    public function passes($attribute, $value)
    {
        return false;
    }

в $value получаю

Illuminate\Http\UploadedFile Object
(
    [test:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 
    [originalName:Symfony\Component\HttpFoundation\File\UploadedFile:private] => test.txt
    [mimeType:Symfony\Component\HttpFoundation\File\UploadedFile:private] => text/plain
    [size:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 55
    [error:Symfony\Component\HttpFoundation\File\UploadedFile:private] => 0
    [hashName:protected] => 
    [pathName:SplFileInfo:private] => D:\Test\OpenServer\userdata\temp\php78C.tmp
    [fileName:SplFileInfo:private] => php78C.tmp
)

Как я понимаю сейчас предполагается куда нить этот файл сохранить и потом с ним работать.
Но как то не очень мне это нравится - может есть способ правильнее

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