Laravel по-русски

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

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

#1 Re: Laravel 5 » Как подключить удаленную БД » 13.06.2019 07:47:28

То, что умеет workbench никак не про eloquent. Создайте тоннель сторонними средствами и соединяйтесь из PHP как если бы это был локальный сервер.
https://www.linode.com/docs/databases/m … te-access/

#2 Re: Laravel 5 » Как подключить удаленную БД » 13.06.2019 07:27:12

Вот здесь собака зарыта:

Проблема в том, что хостинг на котором находится БД подключен к нестандартному порту например 1122

Что значит хостинг подключен к нестандартному порту? Что это за порт, SSH? HTTP?

#3 Re: Laravel 5 » php artisan make:auth без id » 25.05.2019 12:18:49

> в комиссии сказали если у тебя логины уникальные то пусть он используеца как идентификатор.

Ох уж этот академический подход! Типа "нормальная форма подразумевает что запись уникально определяется ключём и только им. А если не только им, то надо проводить декомпозицию". Другими словами, профессора считают, что ключи должны быть натуральными, а не суррогатными. На практике же 99.999% таблиц используют автоинкрементный ключ и соответственно целочисленные внешние ключи.

Ты можешь аргументировать свой выбор тем, что ты используешь фреймворк, а значит оперируешь шаблонными решениями. Велосипедостроительство слишком дорого обходится. Именно поэтому появились фреймворки и шаблоны проектирования.

#4 Re: Laravel 5 » php artisan make:auth без id » 25.05.2019 12:00:11

проверку на уникальность в валидаторе

Это сделано

это же только половина. надо использовать уникальный ключ И проверку в валидаторе.

Теперь другой вопрос, через Auth::id() к новому  '$primaryKey' как нибудь можно обратиться...

Берём в руки отладчик и смотрим:
Auth::id() через цепочку методов читает поле модели, которое указано как primaryKey. То есть, если ты объявишь login как PK, то его и будет возвращать.

То есть тут всё просто. Засады могут случиться там, где есть связи с user. Во всех типовых примерах и готовых пакетах подразумевается что внешние ключи целочисленные и ссылаются на user.id. А его не будет.

Внешние ключи никак не завязаны на Auth::id(), они обращаются к конкретному полю таблицы по имени.

$table->foreign('user_id')->references('id')->on('users');

#5 Re: Laravel 5 » php artisan make:auth без id » 24.05.2019 17:07:47

Мне кажется неоправданно много усилий понадобится. Зачем вообще отказываться от автоинкрементного id? Если цель гарантировать уникальность логина, надо в миграции объявить уникальный ключ по полю login. И, конечно, проверку на уникальность в валидаторе, чтобы контролировать процесс. А id пусть будет как есть, кушать не просит.

#6 Re: Laravel 5 » Очистка кеша Laravel 5.8 » 20.05.2019 11:12:40

Видимо ты не тот кеш чистишь. Инвалидация кеша в браузере от сброса этих вот штук не произойдет.

Вот это вот почитай: https://itnext.io/laravel-the-hidden-se … d594ba462f

#7 Re: Laravel 5 » Ошибка во время выполнения composer update » 19.05.2019 22:16:11

@endo проблема исчезнет когда у тебя будут все необходимые расширения установлены в той версии php, которая работает по умолчанию. соответственно если проблема есть, то это значит, что в нужной версии нужного расширения НЕТ. скорее всего ты ошибся с именами пакетов в apt-get

php -v

php -m

#8 Re: Laravel 5 » Выборка записей по времени в Laravel - не работает » 13.05.2019 11:29:24

Топик стартер имеет привычку копировать вопрос сразу на несколько форумов. На него типа коллективный разум Рунета работает ))) и сам он никогда не пишет "вот такое решение найдено: ..." чтобы пополнить общую копилку. Как по мне, это неуважение.

Вот тут всё отвечено давно: https://php.ru/forum/threads/vyborka-za … aet.76608/

#9 Re: Вакансии » Доработка сайта азартных игр на Laravel » 13.05.2019 06:44:19

@IlyaYa Чуйка мне подсказывает, что "доработка" означает
а) предыдущий программист отказался с вами работать
б) придётся вникать в чужой код, возможно не самого высокого качества

Вот как могло бы выглядеть объявление о работе с описанием техпроцесса:
- Задания оформляются в менеджере задач типа Trello или Jira;
- Разработчик принимает участие в формулировке условий задач, чтобы гарантировать что задание понятно;
- Еженедельные спринты. По итогу спринта, но не раньше, делается вывод о производительности и проблемах;
- Правки ведутся в системе контроля версий, все они на виду и имеют привязку к задаче, всегда можно откатить назад;
- Выкладка на тестовый сервер автоматическая, т.е. если разраб сказал "я сделал", это синоним "можно пробовать на сайте".

Моё предложение: 25000руб в неделю. Если не набрали заданий на новый спринт - окей, значит перерыв на неделю.

#10 Re: Вакансии » Доработка сайта азартных игр на Laravel » 13.05.2019 06:24:16

Скажите сколько пла́тите и пообещайте платить регулярно, а не по окончании работ и народ валом повалит.

#11 Re: Laravel 5 » Как получить данные из двух таблиц с использованием Eloquent? » 13.05.2019 06:17:24

Я понимаю, что это выглядит так, будто бы я не читал документацию и т.п.

вообще-то именно так и выглядит. знающие люди писали документацию.

подсказка: читая документацию обрати внимание в каких случаях вызов идет как ->xxx, а в каких ->xxx()
попробуй и запомни. рекомендую также экспериментировать с такими штуками в консоли: laravel tinker

#12 Re: Laravel 5 » Выводить по 5 записей » 13.05.2019 06:02:17

https://stackoverflow.com/q/8753786/272885
Надеюсь с переписыванием "голого" php на Blade проблем не будет. smile

$count = 1;
foreach( $users_kicks as $kicks ) 
{
    if ($count%5 == 1)
    {  
         echo "<ul>";
    }
    echo "<li>".$kicks->brand."</li">;
    if ($count%5 == 0)
    {
        echo "</ul>";
    }
    $count++;
}
if ($count%5 != 1) echo "</ul>"; //This is to ensure there is no open div if the number of elements in user_kicks is not a multiple of 5


С коллекциями можно получить доп. удобство: метод chunk()
https://laracasts.com/discuss/channels/ … eply=38754

@foreach($collection->chunk(5) as $items)
    <ul>
    @foreach($items as $item)
        <li>
            {{ $item }}
        </li>
    @endforeach
    </ul>
@endforeach

вообще-то есть ешё array_chunk() для массивов smile

Гуглить

blade separator every n rows

#13 Re: Laravel 5 » laracast flash » 03.05.2019 08:14:58

Я изначально не понял, что речь идёт о конкретном пакете laracast/flash, а писал как сессионные флеш переменные используются стандартно в laravel.

Данным пакетом не пользовался и не планирую, так что извини.

#14 Re: Laravel 5 » laracast flash » 02.05.2019 21:19:14

->withErrors($validator) вот оно же ж! )))

или уточни вопрос. непонятно что тебе непонятно.

#15 Re: Laravel 5 » laracast flash » 02.05.2019 10:49:26

https://hackernoon.com/error-messages-v … 196c31466f
https://laravel.com/docs/5.8/validation
https://stackoverflow.com/q/21004310/272885

во вьюхе

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

в контроллере

       if ($validator->fails()) {
            return redirect('post/create')
                        ->withErrors($validator)
                        ->withInput();
        }

Здесь методы withErrors, withInput работают с флеш-памятью. можно явно засовывать значения через Session::flash(), пример смотри в ссылке на stackoverflow

#18 Re: Laravel 5 » Загрузка файлов на хостинге » 25.04.2019 16:05:26

Какую ошибку выдёт, что в логах? Мы не можем в уме проигрывать ваши файлы и делать поправку на все возможные косяки в других местах.

Где описание ошибки????

#19 Re: Laravel 5 » Не работает почему то коментраии » 25.04.2019 16:02:55

Как вы вообще создаёте эти таблицы? Если всё делается руками, то вините руки.

Есть два "нормальных" способа:
1. запускать миграции. где бы вы это ни делали, на локальном ли, на хостинге ли — будет одинаковый результат. И автоинкремент будет и длина ключа нормальная, т.к. она зависит от чарсета, а он в конфиге прописан.
2. сделать базу локально из миграции, заполнить данными, перенести на хостинг через создание дампа/восстановление из дампа. опять получаем точную копию. здесь нет возможности для ошибки!!!!!!!!!!!

#20 Re: Laravel 5 » Помогите новичку с ролями пользователей » 25.04.2019 10:49:18

P.S. Заодно запомни, что именно это называется "авторизацией", а не то, что ты думал.

#21 Re: Laravel 5 » Помогите новичку с ролями пользователей » 25.04.2019 10:47:38

Начни с использования оператора if() big_smile

Канонический путь для Laravel — это шлюзы (gate) и политики (policy), которые будут завязаны на значение этого твоего поля. Наверняка тебе это покажется избыточным, но познакомиться не помешает.
дока на этом сайте

#22 Re: Laravel 5 » Как выложить сайт Laravel на хостинг? » 24.04.2019 06:06:09

Это шаред хостинг? В России его часто называют "виртуальный" или "php хостинг".

#23 Re: Laravel 5 » Не работает почему то коментраии » 23.04.2019 16:22:04

Короче, требуется определённый опыт, которого у вас нет, судя по всему. Договоритесь с кем-нибудь, не со мной smile

#24 Re: Laravel 5 » Не работает почему то коментраии » 23.04.2019 16:20:44

Универсального способа нет. Бекап по-любому надо сделать, а потом наверное восстанавить чего жалко. Но восстановить данные, а не структуру! Структура должна создаться миграцией. Её нельзя снова уничтожить.

Как правило бекап состоит из ddl т.е. drop table + create table
за которыми идёт dml, т.е. insert.
Надо строки с dml только выполнить.

#25 Re: Laravel 5 » преобразователи в модели » 23.04.2019 15:23:30

Апну тему.

Reusable accessors/mutators (getters/setters) for Laravel 5's Eloquent:
https://github.com/topclaudy/eloquent-mutators

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use \Awobaz\Mutator\Mutable;
    
    protected $accessors = [
        'title'   => ['trim_whitespace', 'capitalize'], 
        'content' => ['trim_whitespace', 'remove_extra_whitespace'],
    ];
}

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