Laravel по-русски

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

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

#1 Re: Laravel 5 » Ошибка при artisan optimize » 17.01.2019 12:27:56

Может по каким-то причинам алиас не работает? Проверь
php -v

#2 Re: Хорошие практики (FAQ) » Помогите организовать структуру таблиц mysql » 11.01.2019 00:53:39

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

https://laravel.com/docs/5.7/eloquent-r … ationships

#3 Re: Хорошие практики (FAQ) » Помогите организовать структуру таблиц mysql » 11.01.2019 00:50:09

Я бы начал с описания классов-моделей вместе с отношениями — для существующих таблиц. Проверил бы корректную работу CRUD для каждого класса. Затем создал бы миграции с помощью Migrations Generator. Он не идеален, но бОльшую часть работы сделает. На отдельной базе проверил бы адекватность этих миграций.

После этого можно какую-то логику писать, заглядывая в оригинальный проект. Ведь задача стоит "переписать", а не "сочинить". Рефакторинг не должен менять поведение системы!

https://laravel.com/docs/5.7/eloquent
https://github.com/Xethron/migrations-generator

#4 Re: Хорошие практики (FAQ) » Помогите организовать структуру таблиц mysql » 11.01.2019 00:38:29

Мне кажется вы напрасно усложняете задачу.

У вас ведь уже есть структура таблиц. Вы хотите её переделать вместо того чтобы адекватно отобразить существующую на модели Laravel. Зачем?

#5 Re: Веб-разработка » Выбор фремворка » 09.01.2019 14:49:46

Мысль такая: лучший инструмент тот, которым ты умеешь пользоваться. Если в "крупном проекте" никто не имеет опыта/никого ешё нет, то наверное без разницы какой из современных фреймворков использовать.
В век открытых стандартов, одни и те же компоненты могут использоваться в разных фреймворках. Можно собрать приличный набор из framework agnostic компонент.

#6 Re: Laravel 5 » Защита от SQL-инъекций в сырых запросах » 04.01.2019 13:31:43

Ну если покопаться, то в PDO есть аналог. Но его не рекомендуется использовать. Тем более, что ты не используешь PDO напрямую, а только через прослойку Eloquent.

#7 Re: Laravel 5 » Защита от SQL-инъекций в сырых запросах » 04.01.2019 12:23:49

Вот ещё годный по-моему пример как организовать полнотекстовый поиск в Eloquent через трейт. В трейте параметры через плейсхолдер реализованы.
https://arianacosta.com/php/laravel/tut … laravel-5/

    public function scopeSearch($query, $term)
    {
        $columns = implode(',',$this->searchable);
 
        $query->whereRaw("MATCH ({$columns}) AGAINST (? IN BOOLEAN MODE)" , $this->fullTextWildcards($term));
 
        return $query;
    }

здесь $this->searchable задаётся программистом в коде, поэтому может считаться безопасным, а $term происходит из пользовательского ввода и подставляется через плейсхолдер.

#8 Re: Laravel 5 » Защита от SQL-инъекций в сырых запросах » 04.01.2019 12:20:07

сами по себе "сырые" запросы не исключают использование плейсходеров. Посмотри здесь: https://stackoverflow.com/q/38488926/272885

$my_query = "select *, MATCH (name) AGAINST (?) from users 
    where MATCH (hobbies) AGAINST (? IN BOOLEAN MODE) limit 10 OFFSET ?"

$hobbies = DB::select($my_query, array($search_term, $search_term, (($page-1)*10)));

#10 Re: Laravel 5 » Не могу получить Request данные через https » 30.12.2018 08:17:58

P.S. не знаю зачем ты вообще сделал ?/$1
для роутинга Laravel подставлять путь в гет-параметры не нужно.

#11 Re: Laravel 5 » Не могу получить Request данные через https » 30.12.2018 08:08:37

наверное при реврайтинге теряются параметры. попробуй заменить
RewriteRule ^(.*)$ /index.php?/$1 [L]
на
RewriteRule ^(.*)$ /index.php?/$1 [QSA,L]

https://stackoverflow.com/a/12873205/272885

#12 Re: Laravel 5 » Как удалить пакет dusk с помощью композера? » 26.12.2018 09:12:50

Слово vendor там лишнее. Какое имя писал в install, так же точно пиши в remove.

#13 Re: Laravel 5 » Как выбрать самые залайканные посты по частоте упоминания их id » 26.12.2018 05:52:45

Аналогичный случай, только имена другие
https://stackoverflow.com/a/40021201

А вообще, оптимально иметь поле с количеством лайков в самом посте. При лайке добавляешь запись и увеличиваешь счётчик в одной транзакции.

#14 Re: Laravel 5 » Убрать пару маршрутов с Auth::routes » 25.12.2018 18:19:13

        Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
        Route::post('login', 'Auth\LoginController@login');
        Route::post('logout', 'Auth\LoginController@logout')->name('logout');
        // Registration Routes...
        Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
        Route::post('register', 'Auth\RegisterController@register');
        // Password Reset Routes...
        Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
        Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
        Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
        Route::post('password/reset', 'Auth\ResetPasswordController@reset');

скопируй вместо Auth::routes(),
убери лишнее,
перестрой кеш маршрутов командой php artisan route:cache

#15 Re: Laravel 5 » Убрать пару маршрутов с Auth::routes » 25.12.2018 18:01:39

@b01110011, пробегись ещё раз по ссылке https://github.com/laravel/framework/bl … Router.php

Метод auth() это то, что ты вызываешь, когда делаешь вызов Auth::routes()
Всё, что нужно это ВМЕСТО этого вызова скопировать роуты из него. Затем убрать ненужное.

Ну "для единообразия" пиши не $this->get а Route::get как во всех остальных маршрутах. Всё!

#16 Re: Laravel 5 » Магия при установке » 25.12.2018 17:07:35

Диагноз: Твой веб-скрипт работает под другой учеткой, чем ты используешь в консоли. Надо не только chmod-ом пользоваться, но и chown-ом! И никогда не запускать скрипты от рута.
Проверь, скорее всего твой апачи или энжинекс работают под учеткой www-data. Ну или vagrant, если ты homestead используешь.

Поправь владельца рекурсивно для всего приложения, короче.

#18 Re: Laravel 5 » Магия при установке » 25.12.2018 07:25:35

Что ты называешь "запустить в терминале". Ты запрашиваешь 80 порт в телнете или ты запускаешь какую-нибудь команду artisan?
Предполагаю второе, потому что пишешь о разницах в версиях (cli и mod_php?). Так какие именно команды ты даёшь в терминале расскажи, это может иметь значение.

#20 Re: Laravel 5 » Laracasts. Видео с русскими субтитрами » 22.12.2018 13:06:43

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

удачи!

#21 Re: Laravel 5 » многократн. нажатие "Отправить" пишет в БД. кто как боролся? » 10.12.2018 07:23:55

для моей задачи хватило обернуть в транзакцию. странно, что никто из вас не упомянул об этом smile

Странно что тебе этого хватило smile ведь твоё управление транзакцией происходит в пределах одного http запроса, а изначально ты сформулировал проблему как нечаянные несколько запросов. Казалось бы, при чем тут управление транзакциями!
Видимо есть важный контекст, который здесь не описан.

#22 Re: Laravel 5 » Ошибка базы данных SQLSTATE[HY000] [2002] Connection refused » 01.12.2018 13:08:32

@VovaMark2 а не может такого быть, что миграции ты выполняешь на одной машине (виртуальной), а вебсервер работает на другой (физической)? В такм случае localhost для них разный!!! Лучше всего всё делать на одном и том же хосте, но если очень хочется иметь доступ отовсюду, то надо указать IP где находится сервер БД и убедиться, что настроки MySQL позволят обращаться извне.

Другая идея состоит в том, что возможно настройки нормальные, но конфигурация не обновилась из-за кеширования. Решается через
php artisan config:clear
или
php artisan config:cache

#25 Re: Laravel 5 » Почему то добавляется преффикс при обращении в бд » 30.11.2018 16:06:27

там может быть и такое:
'prefix' => env('DB_PREFIX', ''),
а реальный префикс в файле .env

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