Laravel по-русски

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

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

#2 Re: Laravel 5.x » Получение модели через firstOrNew » 05.04.2018 09:43:58

Перед $second->save() выведите dd($second) и посмотрите, какие данные он имеет.
Вообще странно, ведь при создании модели в конструкторе берутся только данные, указанные в массиве $fillable.

#5 Re: Laravel 5.x » Сессии » 03.03.2018 09:40:27

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

Точно.

#6 Re: Laravel 5.x » Сессии » 01.03.2018 08:14:51

в api.php роутов, ссесии и куки для этого маршрута создаваться не будут?

Сессии подключаются в группе web (3-й элемент массива).

'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

#7 Re: Laravel 5.x » Сессии » 01.03.2018 07:43:31

где прочитать про эту часть

'api' => [
            'throttle:60,1',
            'bindings',
        ]

,что за параметры задаются

Это middleware. Смотри App\Http\Kernel.
Первый разрешает 60 запросов в 1 минуту для одного IP-шника. Второй работает с параметрами роутера.

#8 Re: Laravel 5.x » Сборка frontend » 01.03.2018 06:43:03

У Laravel есть свой инструмент Laravel Mix, работающий через Webpack. Там всё есть. Для ts используйте соответствующий метод.

#10 Re: Laravel 5.x » Разграничение прав меню » 11.08.2017 20:11:55

Вариант 1. Если меню не динамическое, т.е. один раз создали и всё, то можно сделать 4 варианта меню, каждый в отдельном файле, и подключать их в главном шаблоне согласно правам.
Вариант 2. Создавать кэш меню в контроллере через Cache::remember() - будет 4 меню. Логика такая: проверяются права пользователя, определяется соответствующий ключ кэша, по этому ключу выводится меню. Для первого пользователя придётся обработать каждый пункт согласно правам и добавить его в кэш. А для остальных пользователей с теми же правами меню будет браться уже из кэша. Если меню будет меняться, то повесить событие на модель, чтобы при изменении удалялся кэш.

Лично мне первый вариант кажется самым простым.

#11 Re: Laravel 5.x » Проблема с установкой пакета с Github » 10.08.2017 13:12:27

Или в composer.json добавить раздел repositories с указанием нужного репозитория на гитхабе.

#13 Re: Laravel 5.x » Кастомная регистрация пользователей laravel 5.3 » 04.08.2017 21:46:11

Так что из формы приходит - password или userPassword? Валидатор проверяет password, а создается из $request->userPassword.

#14 Re: Laravel 5.x » Есть случай когда модель к миграции не нужна? Почему сразу не создаетс » 20.07.2017 07:40:52

Бывают. Когда создается промежуточная (pivot) таблица или изменяется существующая. Можно при создании модели указать ключ -m для создания миграции.

php artisan make:model App\Models\User -m

Если указать ключ -c, то создастся ещё и контроллер. А если указать ещё -r, то контроллер будет с методами.

#15 Re: Laravel 5.x » Назначение Raw » 19.07.2017 17:57:26

Raw (сырой) позволяет писать обычный sql запрос. Т.е. вместо, например,

$column = 'balance';
$operator = '>';
$value = 500;
$someQuery->where($column, $operator, $value)->get();

можно написать

// передать обычную строку
$someQuery->whereRaw('balance > 500')->get();
// или так (подготовленный запрос)
$someQuery->whereRaw('balance > ?', $request->input('balance'))->get();

#16 Re: Laravel 5.x » Назначение selectRaw » 19.07.2017 17:18:53

В методе select() указываются поля таблицы, а в selectRaw() можно писать селект в свободной форме (без слов SELECT и FROM).
selectRaw() и select(DB:raw()) эквивалентны.

#17 Re: Laravel 5.x » Подскажите как правильно сделать связи » 15.07.2017 12:31:32

Вопрос из разряда "Не хочу документацию читать, сделайте мне по-бырому". В документации про связи написано очень доступно. Кроме того, я бы посоветовал глянуть в сторону уже готовых пакетов для комментариев. Даже хотя бы в качестве примера кода и связей, например, https://github.com/actuallymab/laravel-comment

#18 Re: Laravel 5.x » Контроллер для боковой панели » 15.07.2017 08:09:25

Можно в контроллере расшарить

view()->share('title', 'Заголовок страницы');
return view...

Переменная $title будет доступна во всех видах.

#19 Re: Laravel 5.x » Валидация данных (POST) . В сессию не сохраняются данные формы и текст » 12.07.2017 10:29:27

Ещё получить валидатор можно так

$validator = $this->getValidationFactory()->make($request->all(), $rules, $messages);
if ($validator->fails()) {
    return back()->withErrors($validator)->withInput();
}

#21 Re: Laravel 5.x » в Laravel5 вернуть результат обработки вида в качестве параметра json » 06.07.2017 17:49:52

view() не выводит информацию в браузер, а всего лишь создаёт объект класса View. Поэтому буфер пустой. Получить распарсенное содержимое вида можно через метод render().

$html = view('settings.settings_images', $commonVarsArray)->render();
return \Response::json(['html'=>$html, 'settings_sliderImagesList'=>$settings_sliderImagesList, 'rows_count'=>count($settings_sliderImagesList)]);

#22 Re: Laravel 5.x » Laravel Валидация Формы: проверить, если такой пользователь в базе » 04.07.2017 10:37:48

Как вариант - проверять в контроллере при вставке.

foreach ($request->document_num as $n => $doc_num) {
    if ($user = User::where('document_num',$doc_num)->first()) {
        // Пользователь с таким номером паспорта существует
        if ($user->fullname == $request->fullname[$n]) {
            // Один и тот же юзер
        } else
            // Разные юзеры с одинаковыми данными
        }
    }
}

Можно сделать через FOR, как вариант.
Главное не забыть навешать индексы на эти поля для таблицы Users.

#24 Re: Laravel 5.x » Laravel: проверка формата полей когда хотя бы одно из них обязательно » 03.07.2017 12:53:03

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

Прекращает валидацию этого поля, но не остальные поля. Так в документации написано.

#25 Re: Laravel 5.x » Laravel: проверка формата полей когда хотя бы одно из них обязательно » 03.07.2017 11:40:03

Попробуйте правило bail (ставится самым первым), может сработает. Честно говоря, ни разу его не использовал.
Ещё вариант

$this->validate($request, [
    'email' => 'required_without:tel' . !empty($request->email) ? '|email' : '',
    'tel' => 'required_without:email' . !empty($request->tel) ? '|regex:/(01)[0-9]{9}/' : '',
], $messages);

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