These are chat archives for LaravelRUS/chat

4th
Aug 2017
KorwinArekin
@KorwinArekin
Aug 04 2017 01:29
Приветствую
KarmaBot
@KarmaBot
Aug 04 2017 01:29
Hello, @KorwinArekin!
KorwinArekin
@KorwinArekin
Aug 04 2017 01:33

загрузил свеженькую лару 5.4.30
первым делом по мануалу выполняю

***:/var/www/wk$ php artisan make:auth
Authentication scaffolding generated successfully.

потом

sa@wk:/var/www/wk$ php artisan migrate

и получаю

Migration table created successfully.
  [Illuminate\Database\QueryException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  [PDOException]
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Это что такое?

KorwinArekin
@KorwinArekin
Aug 04 2017 01:42
как это починить?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:16
@KorwinArekin в файле app\Providers\AppServiceProvider.php
в метод public function boot
вставить
Schema::defaultStringLength(191);
KorwinArekin
@KorwinArekin
Aug 04 2017 02:18
@HectorPrima эт косяк от разрабов или я проперся?
в первом предложении написано, почему.
KorwinArekin
@KorwinArekin
Aug 04 2017 02:22
@HectorPrima теперь вот так (((
php artisan migrate
  [Symfony\Component\Debug\Exception\FatalThrowableError]
  Class 'App\Providers\Schema' not found
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:22
@KorwinArekin Что то руками писал?
типа миграцию делал. если да то в миграции в use это не вставил.
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:23
нет, он в провайдер это написал
что явно видно по ошибке
ибо php не изучай (основы, карл!!! никто большего не просит), а сразу захватывай мир
:D
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:23
@SerafimArts а нафига это туда он написал ...
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:24
@HectorPrima увеличить длину ключа
KorwinArekin
@KorwinArekin
Aug 04 2017 02:24
@HectorPrima я ток сделал как ты сказал.. и усе
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:24
только про забыл про неймспейсы и удивляется +)))
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:24
use Illuminate\Support\Facades\Schema;
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:24
@KorwinArekin неймспейс пропиши, карл
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:24
там же в начале добавь
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:25
@HectorPrima ну не надо так
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:25
в AppServiceProvider.php
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:25
тогда же он не откроет мануал по пыху
=\
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:25
ахаха. я все :)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:25
@KorwinArekin ты ведь уже открыл мануал, да? :3
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:25
будем сидеть и "смеяться с человека" ... я неделю назад сам такой был
KorwinArekin
@KorwinArekin
Aug 04 2017 02:25
издевайтесь, издевайтесь, злыдни Ж)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:26
@KorwinArekin ты лучше скажи, ты открыл документацию по пыху? +)
@HectorPrima так никто ж не смеётся
KorwinArekin
@KorwinArekin
Aug 04 2017 02:26
@SerafimArts ага, открыл)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:26
@KorwinArekin на какой странице? +)
KorwinArekin
@KorwinArekin
Aug 04 2017 02:27
@SerafimArts на первой естественно)))
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:27
@KorwinArekin с первой и до конца
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:27
@KorwinArekin это конечно правильно, но в данном случае тебе поможет раздел про неймспейсы
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:28
видишь, тут и ссылки даже
сервис прям+
=)
без знаний основ php - за фреймы лучше не лезть
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:29
@KorwinArekin дружище я раз пять начинал пока багаж знаний не накопил. достаточный для старта :)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:29
там же всё кодом делается
KorwinArekin
@KorwinArekin
Aug 04 2017 02:29
@HectorPrima та понял я)) знаю что такое неймспейсы)) не прогал давно.. вот и тупанул) а вы хохочете тут))
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:29
@KorwinArekin а с чего хохотать. я же говорю. сам за лару неделю назад сел!
KorwinArekin
@KorwinArekin
Aug 04 2017 02:30
@HectorPrima когда для тебя это направление мимоходная побочка, нет столько времени литру лопатить)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:30
@KorwinArekin кажется, так не прокатит
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:30
@KorwinArekin тогда есть вероятность что ты что то сломаешь...
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:30
в случае со всякими cms - вполне возможно
KorwinArekin
@KorwinArekin
Aug 04 2017 02:30
@HectorPrima я еще ничего не сделал чтоб сломать))
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:30
:D
@HectorPrima gg wp
KorwinArekin
@KorwinArekin
Aug 04 2017 02:31
ладн, я осознал) спасибо ребят)
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:31
@KorwinArekin тут можно достаточно долго "сидя у реки" - все сломать :):):)
KorwinArekin
@KorwinArekin
Aug 04 2017 02:31
@HectorPrima спасибо)
KarmaBot
@KarmaBot
Aug 04 2017 02:31
Спасибо (+1) для @HectroPrima принято! Текущая карма +3.
KorwinArekin
@KorwinArekin
Aug 04 2017 02:31
@SerafimArts спасибо)
KarmaBot
@KarmaBot
Aug 04 2017 02:31
Спасибо (+1) для @SerafimArts принято! Текущая карма +755.
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:32
халява приди (c) :D
кстати
KorwinArekin
@KorwinArekin
Aug 04 2017 02:32
Но я обязательно еще напишу вам такойже глупый вопрос)) несомненно)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:32
у гитхаба есть такая шняга, как пунч кард
там отмечается понедельная статистика коммитов
у меня с 20 вчера до 5 утра примерно xD
Evgeny Stefanenko
@KomAuras
Aug 04 2017 02:33
@SerafimArts и?
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 02:33
кажется, сидеть до 5ти утра - не прикольно
а сейчас 5:33, так что лучше пойду спать =))))
KorwinArekin
@KorwinArekin
Aug 04 2017 02:34
@SerafimArts халява приди - было гдет лет 10 назад) когда учился еще)) а сейчас - "Ты и ты - Сделай!" )) карьерный рост в делах ITшных не редко пагубно сказывается)
@SerafimArts даже навык учиться теряешь порой
вот теперь заново учусь учиться)
Alexander
@spartaque
Aug 04 2017 06:14
@Oleg-Arkhipov дык говорю же, мне незачем сохранять ее
PhpNet
@PhpNet
Aug 04 2017 07:30

Привет. Подскажите, плез, как правильно назвать пивот-таблицу, если у меня таблицы не из одного слова.

Есть blog_posts и модель Blog\Post и blog_categories, и модель Blog\Category. Должно получиться что то вроде blog_post_blog_category? И поля соответственно blog_post_id, blog_category_id?

KarmaBot
@KarmaBot
Aug 04 2017 07:30
Не узнал тебя, @PhpNet. Богатым будешь :)
Ваня Devium
@webdevium
Aug 04 2017 07:34
@PhpNet ПО АЛФАВИТУ
в доке жирным обозначено, по АЛФАВИТУ
PhpNet
@PhpNet
Aug 04 2017 07:35
@webdevium я про то что имя таблицы не из одного слова, сожрет оно такое?
blog_category_blog_post получится просто, нифига не по алфавиту :)
Ваня Devium
@webdevium
Aug 04 2017 07:36
@PhpNet вот так правильно
PhpNet
@PhpNet
Aug 04 2017 07:36
@webdevium пасиб, ща попробуем-с.
PhpNet
@PhpNet
Aug 04 2017 07:51

Не, наверное я что то не то делаю все таки :(
Создал таблицу blog_category_blog_post с полями blog_category_id, blog_post_id, в Blog\Post прописал

public function category() {
        return $this->belongsToMany(\App\Models\Blog\Category::class);
}

вродь все похоже на мануал. Но когда в событии пытаюсь сделать

$model->category()->attach(['blog_post_id'=>$model->id, 'blog_category_id'=> request('parent_id')]); //и не спрашивайте, почему из request'a берется значение

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

Ваня Devium
@webdevium
Aug 04 2017 07:53
@PhpNet в категории обратная связь езь?
PhpNet
@PhpNet
Aug 04 2017 07:54
@webdevium не.. ща добавил, глянем-с...
Anton Vorontsov
@symbios-zi
Aug 04 2017 07:57
@PhpNet попробуй переименовать таблицу так чтобы соответственно алфавиту. У них так принято. не post_category, а category_post. Не уверен что с твоими префиксами (blog) поможет. НО возможно дело в этом
блин. уже выше написали об этом =)
Ваня Devium
@webdevium
Aug 04 2017 07:58
Н - внимательность
PhpNet
@PhpNet
Aug 04 2017 07:58
@symbios-zi таблицу переименовал, пока не помогло
Ваня Devium
@webdevium
Aug 04 2017 07:58
@PhpNet пивот надо указать
поищи
PhpNet
@PhpNet
Aug 04 2017 07:59

все равно та же ерунда

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'dbname.category_post' doesn't exist (SQL: insert into category_post (category_id, post_id) values (2, 2), (1, 2))

ищет почему то category_post, игнорирует префикс, и не оч понятно почему 2 значения вставить пытается

@webdevium using имеешь в виду?
Ваня Devium
@webdevium
Aug 04 2017 07:59
@PhpNet не знаю, честно, но думаю, что возможность езь
Anton Vorontsov
@symbios-zi
Aug 04 2017 08:02
@PhpNet ну а что тогда вручную не описать все связи?
public function belongsToMany($related, $table = null, $foreignKey = null, $relatedKey = null, $relation = null)
PhpNet
@PhpNet
Aug 04 2017 08:04
@symbios-zi если б еще комментарии были к коду :D я-то в сорц смотрю...
в моем случае $table - имя пивот таблицы, foreignKey - имя поля в Post, related в Category?
Anton Vorontsov
@symbios-zi
Aug 04 2017 08:04
    public function productAttributes()
    {
        return $this->belongsToMany(Attribute::class, 'product_attribute', 'product_id', 'attribute_id');
    }
вот у меня тоже не правильно было названо. вручную описал
PhpNet
@PhpNet
Aug 04 2017 08:04
а последний параметр нафик? обожаю сорц код без комментариев ))
Anton Vorontsov
@symbios-zi
Aug 04 2017 08:05
@PhpNet вообще то он с комментариями, мне тебе весь код кинуть? я думал ты сам способен перейти в исходник и поглядеть
Ваня Devium
@webdevium
Aug 04 2017 08:05
я же говорил, что можно указать :)
PhpNet
@PhpNet
Aug 04 2017 08:06
 * @param  string  $related
 * @param  string  $table
 * @param  string  $foreignKey
 * @param  string  $relatedKey
 * @param  string  $relation
офигеть комменты ))
погнал весь сорц читать короче) быстрее разберусь)
Anton Vorontsov
@symbios-zi
Aug 04 2017 08:06
@PhpNet ты прикалываешься?
/**
     * Define an inverse one-to-one or many relationship.
     *
     * @param  string  $related
     * @param  string  $foreignKey
     * @param  string  $ownerKey
     * @param  string  $relation
     * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
     */
    public function belongsTo($related, $foreignKey = null, $ownerKey = null, $relation = null)
    {
        // If no relation name was given, we will use this debug backtrace to extract
        // the calling method's name and use that as the relationship name as most
        // of the time this will be what we desire to use for the relationships.
        if (is_null($relation)) {
            $relation = $this->guessBelongsToRelation();
        }

        $instance = $this->newRelatedInstance($related);

        // If no foreign key was supplied, we can use a backtrace to guess the proper
        // foreign key name by using the name of the relationship function, which
        // when combined with an "_id" should conventionally match the columns.
        if (is_null($foreignKey)) {
            $foreignKey = Str::snake($relation).'_'.$instance->getKeyName();
        }

        // Once we have the foreign key names, we'll just create a new Eloquent query
        // for the related models and returns the relationship instance which will
        // actually be responsible for retrieving and hydrating every relations.
        $ownerKey = $ownerKey ?: $instance->getKeyName();

        return new BelongsTo(
            $instance->newQuery(), $this, $foreignKey, $ownerKey, $relation
        );
    }
KarmaBot
@KarmaBot
Aug 04 2017 08:07
@symbios-zi, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
PhpNet
@PhpNet
Aug 04 2017 08:07
не, у меня пятница :D
погнал сорц читать, гвоорю ж)
я просто обычно коммнты к аргументам пишу прямо в докблоке
Anton Vorontsov
@symbios-zi
Aug 04 2017 08:07
тут целая книжка
@PhpNet ну так ты сделал как в моем примере и не работает чтоли?
PhpNet
@PhpNet
Aug 04 2017 08:10
@symbios-zi работает но малость странно, ща разберусь...
Ostap
@BendersOstap_twitter
Aug 04 2017 08:12
ребят хелпаните по доке плиз)
Ваня Devium
@webdevium
Aug 04 2017 08:12
доки
Ostap
@BendersOstap_twitter
Aug 04 2017 08:12
@webdevium return response()->download($pathToFile); это я так понял отдает файл? юзеру в барузер?
Ваня Devium
@webdevium
Aug 04 2017 08:13
@BendersOstap_twitter на скачку изрыгает с правильными хидерами
Ostap
@BendersOstap_twitter
Aug 04 2017 08:13
@webdevium вооо гуд сс
@webdevium спс
KarmaBot
@KarmaBot
Aug 04 2017 08:13
Спасибо (+1) для @webdevium принято! Текущая карма +260.
Ostap
@BendersOstap_twitter
Aug 04 2017 08:14
@webdevium ему передается аргумент такйо как $pathtoFile а он как правило пишется в базу? или как запросить путь?
Ваня Devium
@webdevium
Aug 04 2017 08:14
@BendersOstap_twitter воу воу
@BendersOstap_twitter $pathToFile как переводится?
Ostap
@BendersOstap_twitter
Aug 04 2017 08:14
@webdevium путь к файлу
Vilintritenmert
@Vilintritenmert
Aug 04 2017 08:14

Привет , подскажите - при получении header-а , Accept => ('html/json') нужно возвращать View либо JSON

Мое решение?

class ResController extends Controller {
        private $isView;

        public function __constructor(){
                $accept = $request->header('Accept');
                 $this->isView = ends_with($accept,'html');
        }

        public function index(){
                         $result = array();

                        return ($this->isView ? View('resources.index', $result) : 
            response()->json($result);
        }
}
KarmaBot
@KarmaBot
Aug 04 2017 08:14
Hello, @Vilintritenmert!
Ваня Devium
@webdevium
Aug 04 2017 08:14
@BendersOstap_twitter при чем тут база?
Ostap
@BendersOstap_twitter
Aug 04 2017 08:15
@webdevium есть метод генерирования пути? или его сначало нужно запистаь в бд? когда чел залил файл а потом отдать?
Ваня Devium
@webdevium
Aug 04 2017 08:16
@BendersOstap_twitter путь к файлу. храни где хочешь. когда надо скачать - сформируй путь.
@Vilintritenmert фигня полная
Ostap
@BendersOstap_twitter
Aug 04 2017 08:17
return response()->file('var/www/storage/app/file.zip'); ну или же напрямую?
Ваня Devium
@webdevium
Aug 04 2017 08:17
@Vilintritenmert request()->wantsJson()
PhpNet
@PhpNet
Aug 04 2017 08:18
@webdevium @symbios-zi спасибо, заработало) невнимательно читал мануал как обычно :)
KarmaBot
@KarmaBot
Aug 04 2017 08:18
Спасибо (+1) для @webdevium принято! Текущая карма +261.
Спасибо (+1) для @symbios-zi принято! Текущая карма +232.
Aleksandr
@slowdream
Aug 04 2017 08:20
$category::firstOrNew([
                'guid' => $val['groupid'],
                'name' => $val['group'],
            ]);
$category->update(['items_parent' => true]);
$product = new Product([
                'name' => $val['name'],
                'guid' => $val['id']
]);
$category->products()->save($product);
Где я дурак ?
Vilintritenmert
@Vilintritenmert
Aug 04 2017 08:20
@webdevium удобный фокус, и дальше мой вариант?
Aleksandr
@slowdream
Aug 04 2017 08:20
дамп показывает что в $category модель с нужной категорией
В итоге ругается, что "Column 'category_id' cannot be null"
Ваня Devium
@webdevium
Aug 04 2017 08:24
@Vilintritenmert какой вариант?
@slowdream а че update?
Vilintritenmert
@Vilintritenmert
Aug 04 2017 08:29

@webdevium

return (request()->wantsJson() ? 
View('resources.index', $result) : 
            response()->json($result);

или другое решение?

Ваня Devium
@webdevium
Aug 04 2017 08:39
@Vilintritenmert тернарник здесь некрасив
Vilintritenmert
@Vilintritenmert
Aug 04 2017 08:40
ok. ty
@webdevium спасибо
KarmaBot
@KarmaBot
Aug 04 2017 08:41
Спасибо (+1) для @webdevium принято! Текущая карма +262.
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 09:05

привет ребята
в чем может быть причина автоматического закрытья модалки
есть кнопка

<a href="#pulp-qualification-57" data-toggle="modal" class="btn btn-xs btn-info">
  <i class="fa fa-info"></i> Detail
</a>

и див

<div class="modal fade" id="pulp-qualification-57">.....</div>

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

KarmaBot
@KarmaBot
Aug 04 2017 09:05
Не узнал тебя, @mkrestovskiy. Богатым будешь :)
Ваня Devium
@webdevium
Aug 04 2017 09:06
@mkrestovskiy bubbling
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 09:08
@webdevium извини, не понял к сожелению
Ваня Devium
@webdevium
Aug 04 2017 09:08
@mkrestovskiy событие всплывает выше, потому и закрывается, так как клик "выше" и должен закрыть
e.preventDefault() заюзай, и будет счастье
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 09:13
@webdevium отбой, 2 раза бутстрап инклудился
@webdevium спасибо
KarmaBot
@KarmaBot
Aug 04 2017 09:13
Спасибо (+1) для @webdevium принято! Текущая карма +263.
Ostap
@BendersOstap_twitter
Aug 04 2017 10:09
https://laravel.com/docs/5.4/views#view-composers ребят вот тут сказанно что например какой либо метод будет вызываться при рендере конкреттной вьюхи.... какой пример можно придумать из жизненой ситуации?
точнее не конкретной вьюхи а любой
Dave
@aios
Aug 04 2017 10:10
@BendersOstap_twitter В меню данные о пользователе
Ваня Devium
@webdevium
Aug 04 2017 10:10
@BendersOstap_twitter seo теги для страницы
Ostap
@BendersOstap_twitter
Aug 04 2017 10:13
Т.е. я подключаю класс который возвращает СЕО теги допустим, прописываю его в boot() методе и они становятся доступны мне во всех вьюхах?
Alexander
@Dualse
Aug 04 2017 10:13
@BendersOstap_twitter в тех, которые ты указал
Ваня Devium
@webdevium
Aug 04 2017 10:13
@BendersOstap_twitter на тех, к которым ты приуярил этот композер
Ostap
@BendersOstap_twitter
Aug 04 2017 10:14
@Dualse @webdevium спс ребят =)
KarmaBot
@KarmaBot
Aug 04 2017 10:14
Спасибо (+1) для @Dualse принято! Текущая карма +160.
Спасибо (+1) для @webdevium принято! Текущая карма +264.
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 10:17

у меня трабл возник небольшой
есть возможность ошибки division by zero
как можно обойти это красиво без
if($number != 0)

$estimatedAnnual ? $qualificationBid->cost / ($estimatedAnnual / 12) : 0
это нормальное решение?

Ostap
@BendersOstap_twitter
Aug 04 2017 10:18
щас будет практика у меня хД подключения подобного)
Alexander
@Dualse
Aug 04 2017 10:22
@mkrestovskiy эм, это тоже самое
ты тоже написал условие
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 10:24
@Dualse да, так как пока я ничего лучшего не придумал?
есть идеи как сделать чтобы глобально php когда делит на 0 чтобы 0 и получался
Alexander
@Dualse
Aug 04 2017 10:25
@mkrestovskiy надо не делить на 0)
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 10:25
@Dualse да, да
так учили в школе нас
у меня 0 может получится в результате каких то операций
Alexander
@Dualse
Aug 04 2017 10:29
@mkrestovskiy ну так ты и не делай деление, если 0 получается
Ваня Devium
@webdevium
Aug 04 2017 10:29
@mkrestovskiy
  • ты можешь заморочиться и перехватить ошибку
  • ты можешь подавить ошибку используя @ перед строкой
  • ты можешь подтянуть основы языка в вопросах ошибок
Alexander
@Dualse
Aug 04 2017 10:29
@webdevium а можешь дописать пару символов для условия)
и не заморачиваться
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 10:30
@webdevium я не хочу юзать @
PhpNet
@PhpNet
Aug 04 2017 10:30

ты можешь подавить ошибку используя @ перед строкой

:fire: и потом оЩЩень долго рвать волосы на всех частях тела

Ваня Devium
@webdevium
Aug 04 2017 10:30
@Dualse $qualificationBid->cost / ($estimatedAnnual / 12) математику кто-то пропустил
Ostap
@BendersOstap_twitter
Aug 04 2017 10:30
@webdevium делаю. как сказанно в доке https://laravel.com/docs/5.4/views#view-composers. создал дирку app/Http/ViewComposers открыл файл ComposerServiceProvider.php что бы зарегистрировать свой ViewCommposer! НО там нету метода boot
Ваня Devium
@webdevium
Aug 04 2017 10:31
@BendersOstap_twitter как сделал composerserivceprovider?
Max Krestovskiy
@mkrestovskiy
Aug 04 2017 10:31
@webdevium не математику а чтобы наглядно было видно лучше
Ваня Devium
@webdevium
Aug 04 2017 10:31
@mkrestovskiy кому? первокласснику?
Ostap
@BendersOstap_twitter
Aug 04 2017 10:32
@webdevium погодь, он де идет в ларавель
Ваня Devium
@webdevium
Aug 04 2017 10:32
@BendersOstap_twitter в какой версии?
Ostap
@BendersOstap_twitter
Aug 04 2017 10:32
5.4
я делаю все по доку но у меня расхождения с докой
Ваня Devium
@webdevium
Aug 04 2017 10:32
@BendersOstap_twitter удали его и напиши
php artisan make:provider ComposerServiceProvider
@BendersOstap_twitter в новом файле будет boot
Ostap
@BendersOstap_twitter
Aug 04 2017 10:33
а в связи с чем подобное?))) вот я как новичек никогда бы не догадался)
Ваня Devium
@webdevium
Aug 04 2017 10:34
@BendersOstap_twitter ну чисто логически было бы на твоем месте открыть любой из соседних провайдеров и скопировать метод boot, правда логично?
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 10:35
либо создать его =\
Ваня Devium
@webdevium
Aug 04 2017 10:35
@BendersOstap_twitter они же провайдеры, они все с одной дырки вылазят
@SerafimArts Н - внимательность
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 10:35
@webdevium :D :fire:
Ostap
@BendersOstap_twitter
Aug 04 2017 10:36
@webdevium ну так то я иду чисто по доку))) и хрен догадаешься )
Ваня Devium
@webdevium
Aug 04 2017 10:36
@BendersOstap_twitter там в доке на первой странице есть команда artisan enable:brain. Ты выполнил ее?
Anton Vorontsov
@symbios-zi
Aug 04 2017 10:37

@webdevium

ты можешь подавить ошибку используя @ перед строкой

ты зачем людей плохому учишь? =)

Ваня Devium
@webdevium
Aug 04 2017 10:37
@symbios-zi та я просто все варианты перечислил
Ostap
@BendersOstap_twitter
Aug 04 2017 10:38
php artisan fix:hands только
Ваня Devium
@webdevium
Aug 04 2017 10:39
@@webdevium уехал на 2 часа
Ostap
@BendersOstap_twitter
Aug 04 2017 10:51
ема ребят откуда взялось public function __construct(UserRepository $users)
ЮзерРепозитори класс?)
если его в ларке нету)
Igor Markin
@markinigor
Aug 04 2017 11:10
@BendersOstap_twitter ну кто же кроме тебя может знать какие ты классы в проект добавил
Tarasovych
@Tarasovych
Aug 04 2017 11:59

Логика загрузки файла:

$file = public_path($name . '.txt');
return Response::download($file);

Учитывая то, что $name берется из БД, безопасно/правильно ли вот так подставлять расширение и отдавать на загрузку? Или лучше хранить полное название файла в БД? Дело еще в том, что файл хранится в одноименной директории (но без расширения, само собой).

JhaoDa
@jhaoda
Aug 04 2017 12:00
@Tarasovych а в чём ты видишь опасность/неправильность?
@markinigor он тоже не знает, потому что херачит по примерам, не думая
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:17
Мозг взрывается, не понимаю Eloquent.
Alexander
@Dualse
Aug 04 2017 12:18
@HectorPrima а что непонятного то?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:18
Над каждым запросом как Кощей над златом чахну.
prog-man
@prog-man
Aug 04 2017 12:18

Всем привет.

Нужно отфильтровать коллекцию постов на наличие у поста комментария (связанные данные один-ко-многим) с определенным id.

В комментариях ниже видно, что хочу сделать:

$comment_id = 11;

$posts = \App\Post::all();

// Фильтруем посты по наличию у поста комментария с $id == $comment_id
$posts = $posts->filter(function(\App\Post $post) use ($comment_id) {

    // Какой метод для коллекции использовать?
    dd($post->commnets); // Коллекция в которой нужно найти комментарий с $id == $comment_id и вернуть true или false

});

Какой метод для коллекции использовать?

KarmaBot
@KarmaBot
Aug 04 2017 12:18
Приветствую тебя, @prog-man!
Alexander
@Dualse
Aug 04 2017 12:18
Модель Eloquent == Таблица в БД
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:18
типа такого
$data = ProductProv::with('ProductProvOptions.ProductProvOptionValues')->where(['name'=>'Эстет','product_prov_options.name'=>'goods_types'])->get()->toArray();
JhaoDa
@jhaoda
Aug 04 2017 12:19
@HectorPrima и?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:19
вот это конечно бред ... product_prov_options.name
Column not found: 1054 Unknown column 'product_prov_options.name' in 'where clause'
JhaoDa
@jhaoda
Aug 04 2017 12:21
@HectorPrima бред то, что у тебя в одном месте name это название, а в другом — какой-то тип
@HectorPrima и кто тебе сказал, что можно писать 'product_prov_options.name'=>'goods_types'?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:22
три таблицы связаны друг с другом... нужно в первой выбрать имя, во второй имя... и получить все по этому фильтру из третьей
JhaoDa
@jhaoda
Aug 04 2017 12:23
@HectorPrima в данном случае ларавел сделает ТРИ запроса, из которых скомпонует коллекцию со связями. И условие применится лишь к ПЕРВОМУ запросу на выборку ProductProv
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:24
т.е. без хитрых замыканий никак?
JhaoDa
@jhaoda
Aug 04 2017 12:24
@HectorPrima или без джоинов
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:25
с ними у меня беда. ладно. подумаю ...
Eloquent мутный... по мне так тупо делать join когда я уже все связи указал.
JhaoDa
@jhaoda
Aug 04 2017 12:27
@HectorPrima ну так доктрину юзай
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:30
@jhaoda хочется разобраться. буду тыкаться.
slider23
@slider23
Aug 04 2017 12:30
@HectorPrima eloquent не делает join, там другая концепция.
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:31
@slider23 да я понял что он join в памяти делает. сколько связей, столько запросов и соединение по ключевым полям.
slider23
@slider23
Aug 04 2017 12:32
Если это трудно дается, то можно юзать sql-запросы при помощи query builder
с join и всем прочим
Evgeny Stefanenko
@KomAuras
Aug 04 2017 12:32
@slider23 можно но это смахивает на прямую работу с таблицами. кажется это не приветствуется!?
slider23
@slider23
Aug 04 2017 12:40
Не приветствуется код писать в контроллерах, и прочее нарушение принципов SOLID, а все остальное можно.
Элоквент позволяет делать разные мелкие прикольные фишечки - когда у тебя класс соответствует таблице, например, можно при помощи laravel-ide-helper сгенерить phpdoc, который позволит юзать автодополнение названий столбцов и подчеркивать опечатки в них. И т.п. Но можно и квери-билдером. Входные данные там экранируются, возвращает он коллекции, а не массивы - можно потом их обрабатывать как и после элоквента.
KarmaBot
@KarmaBot
Aug 04 2017 12:40
@slider23 и тебе не хворать :)
NoViKoFF
@AndrewNovikof
Aug 04 2017 12:50
Всем привет! Кто работает с socialite, есть ли какой то функционал скармливания токенов разных приложений например из базы, а не из service.php? Или нужно переопределять классы?
KarmaBot
@KarmaBot
Aug 04 2017 12:50
Прувет, @AndrewNovikof!
NoViKoFF
@AndrewNovikof
Aug 04 2017 12:55
Хотя вижу, переопределять нужно getConfig в SocialiteWasCalled.
Alexander
@spartaque
Aug 04 2017 13:01
привет. Подскажите пожалуйста, в каких СУБД удобно хранить данные о пользователях? их может быть миллионы, они ходят по нашим площадкам, идентифицируются по кукам. Нужно писать где они были, когда, сколько(то есть данные имеют иерархию). Мускул/постгрес не удобные для этого, так как потом эти данные очень сложно агрегировать, и синхронизировать с тем же редисом
KarmaBot
@KarmaBot
Aug 04 2017 13:01
@spartaque, и тебе привет ;)
fakefakefake12
@fakefakefake12
Aug 04 2017 13:17
@spartaque тебе БД для агрегации (считай BI) ннада?
NoViKoFF
@AndrewNovikof
Aug 04 2017 13:24
@jhaoda нужна твоя помощь)
JhaoDa
@jhaoda
Aug 04 2017 13:33
@AndrewNovikof тот, кому нужная помощь, спрашивает
NoViKoFF
@AndrewNovikof
Aug 04 2017 13:37
Вопрос на самом деле сложный...по поводу socialite. Он из коробки заточен под один конфиг, т.е. под одно приложение соцсети. Есть задача чтобы логиниться от разных приложений и разных соцсетей.
Для этого я сформировал парочку таблиц
Переопределил основной сервис провайдер
И дошел до переопределения метода getConfig в SocialiteWasCalled
Но тут у меня какой то ступор...я не могу понять как мне в него передавать нужный конфиг из базульки..
И вообще, мне кажется, что мне придется сервис провайдеры для каждой соцсети допиливать, чтобы они мой локальный SocialiteWasCalled подхватывали
NoViKoFF
@AndrewNovikof
Aug 04 2017 13:44
@jhaoda скажи плз, может я не то переопределяю? Или я вообще дурак и все делается на много проще, а я усложняю?
JhaoDa
@jhaoda
Aug 04 2017 13:45
@AndrewNovikof я не копал так глубоко
NoViKoFF
@AndrewNovikof
Aug 04 2017 13:46
@jhaoda Ладно, спасибо) Буду копать
@jhaoda спасибо
KarmaBot
@KarmaBot
Aug 04 2017 13:46
Спасибо (+1) для @jhaoda принято! Текущая карма +1578.
webdevium @webdevium вернулся. Готов отвечать даже не самые глупые вопросы...
nejtr0n
@nejtr0n
Aug 04 2017 14:08

@AndrewNovikof можно попробовать забиндить инстансы Socialite для каждого приложения.

$this->app->bind(SocialiteApp1::class, function($app, array $params) {
     // set config keys for this instance
    return  Socialite::driver($params[0]);
});

и получать
app()->make(SocialiteApp1::class, 'github');

Ваня Devium
@webdevium
Aug 04 2017 14:19
@HectorPrima у тебя какая версия php?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 14:21
@webdevium извиняюсь. просто уже первый час ночи. уработался. туплю. все работает.
Ваня Devium
@webdevium
Aug 04 2017 14:22
@HectorPrima ты шо в Китае?
Alexander
@Dualse
Aug 04 2017 14:22
@webdevium опять ты со своим Китаем
Evgeny Stefanenko
@KomAuras
Aug 04 2017 14:22
Хабаровск
Ваня Devium
@webdevium
Aug 04 2017 14:22
Это там, где Марс видно как луну?
Evgeny Stefanenko
@KomAuras
Aug 04 2017 14:22
... ага и мамонты, мамонты...
просто балбес не захотел сразу привести имена и поля в порядок а сейчас мучаюсь... нужно выходные потратить и рефакторинг устроить.
Alexander
@spartaque
Aug 04 2017 14:24
@fakefakefake12 та для всего) решили монгу использовать
NoViKoFF
@AndrewNovikof
Aug 04 2017 14:25
@nejtr0n Боюсь что это не выход))
Ostap
@BendersOstap_twitter
Aug 04 2017 14:34
Ребят что такое валидация вложенных параметров
Ваня Devium
@webdevium
Aug 04 2017 14:35
@BendersOstap_twitter boo.* => required
Ostap
@BendersOstap_twitter
Aug 04 2017 14:35
This message was deleted
$this->validate($request, [
    'title' => 'required|unique:posts|max:255',
    'author.name' => 'required',
    'author.description' => 'required',
]);
'title' например понятно <input type="text" name="title"
'author.description' а это что?
Ваня Devium
@webdevium
Aug 04 2017 14:38
input type="text" name="author[description]"
Ostap
@BendersOstap_twitter
Aug 04 2017 14:38
@webdevium аааа спс =)
KarmaBot
@KarmaBot
Aug 04 2017 14:38
Спасибо (+1) для @webdevium принято! Текущая карма +265.
NoViKoFF
@AndrewNovikof
Aug 04 2017 15:05
@jhaoda господи, я нашел ))
Ваня Devium
@webdevium
Aug 04 2017 15:48
Темыча уже господом называют. Дожили.
NoViKoFF
@AndrewNovikof
Aug 04 2017 15:58
Это междометие))
opensgame
@opensgame
Aug 04 2017 17:19
вечер добрый, подскжаите как исправить

Fatal error: Uncaught Error: Class 'Illuminate\Foundation\Application' not found in /var/www/html/laravel/bootstrap/app.php:14 Stack trace: #0 /var/www/html/laravel/public/index.php(37): require_once() #1 {main} thrown in /var/www/html/laravel/bootstrap/app.php on line 14
KarmaBot
@KarmaBot
Aug 04 2017 17:19
Будь как дома, @opensgame, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 17:29
@opensgame установить laravel
это самое простое решение, имхо
opensgame
@opensgame
Aug 04 2017 17:32
@SerafimArts я установил, оно начало выбивать что то о autoload я сделать composer dumpautoload
и появилась эта ошибка
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 17:33
@opensgame значит плохо установил =)
удали и заново поставь
или сбрось кеш
opensgame
@opensgame
Aug 04 2017 17:39
@SerafimArts
php artisan cache:clear
php artisan view:clear
php artisan config:cache
?
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 17:39
@opensgame композеровский
Zlatoslav Desyatnikov
@zlodes
Aug 04 2017 18:31
@opensgame composer du
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 18:37
@zlodes так он же уже написал это
Zlatoslav Desyatnikov
@zlodes
Aug 04 2017 18:38
@SerafimArts "сообщения выше не читай, отвечай на последнее". :D
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 18:40
@zlodes а, ну это святое :D
Tinboy
@Tinboy
Aug 04 2017 18:53
всем привет)
KarmaBot
@KarmaBot
Aug 04 2017 18:53
Привет, @Tinboy! Проходи, присаживайся. В ногах правды нет :)
Tinboy
@Tinboy
Aug 04 2017 18:55
есть вопросик, делаю чат на ларке, клиент отправляет post-запрос на /add_message ,контроллер его проверяет и отправляет в chatservice и т.д, в итоге по socket.io сообщение добирается до браузера,а ajax получает пустой response с кодом 500 почему-то,хотя все ок ,ошибок нет,логи чекал
Zlatoslav Desyatnikov
@zlodes
Aug 04 2017 18:57
@Tinboy 500 может быть в двух случаях. 1 — там реально ошибка где-то; 2 — response('', 500)
Tinboy
@Tinboy
Aug 04 2017 18:58
сюда скрины кидать можно?
opensgame
@opensgame
Aug 04 2017 18:58
установил заново лару
прописал composer update --no-scripts
и ничего не дало
Warning: require(/var/www/html/blog/bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/blog/bootstrap/autoload.php on line 17

Fatal error: require(): Failed opening required '/var/www/html/blog/bootstrap/../vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/html/blog/bootstrap/autoload.php on line 17
Tinboy
@Tinboy
Aug 04 2017 18:59
image.png
вот на create идет post
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:04
@opensgame лол
у тебя папка vendor вообще есть?
ну что-то с правами, короче
sudo composer install или попробовать их починить, одно из двух
@Tinboy если картинка большая, то лучше заворачивать в код
Tinboy
@Tinboy
Aug 04 2017 19:05
ок
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:05
но тут превьюшка мелкая есть, так что не страшно
Tinboy
@Tinboy
Aug 04 2017 19:06
@SerafimArts не знаешь почему может 500 возвращать?
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:06
@Tinboy tail ./storage/logs/laravel.log
Tinboy
@Tinboy
Aug 04 2017 19:06
@SerafimArts может стоит самому прописать return response('',200)
@SerafimArts логи чисты
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:06
значит нгинсовские смотри
Tinboy
@Tinboy
Aug 04 2017 19:07
@SerafimArts щас гляну
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:07
стой, вообще 500?
дебаг включён?
Tinboy
@Tinboy
Aug 04 2017 19:07
@SerafimArts да
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:07
мейджик
Tinboy
@Tinboy
Aug 04 2017 19:07
@SerafimArts если ошибки были от лары то в chrome dev tools показывались
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:07
значит ошибка ещё до инициализации системы
Tinboy
@Tinboy
Aug 04 2017 19:08
@SerafimArts а щас просто пустой 500
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:08
в пыхе включено отображение ошибок, же?
Tinboy
@Tinboy
Aug 04 2017 19:08
хмм, не уверен
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:08
чтоб при неперехваченных писало прямо на экран
в логи нгинкса\пыха оно тоже попадает обычно, но так проще
error_reporting E_ALL + display_errors 1 в обязательном порядке должны быть врублены на рабочей машине
ну и display_startup_errors 1 тоже
Tinboy
@Tinboy
Aug 04 2017 19:11
прописал в htaccess php_value display_errors 1
php_value display_startup_errors 1
php_value error_reporting E_ALL
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:12
@Tinboy если ошибок не будет - это косяк в твоём htacces
вроде как
давно просто апачем пользовался
Tinboy
@Tinboy
Aug 04 2017 19:12
ничего нет
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:13
логи апача значит смотри, там косяк в htaccess наверняка
Tinboy
@Tinboy
Aug 04 2017 19:13
image.png
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:13
проверить просто - почистить его
а, стоп
респонз хедеры содержат кукисы
значит система поднимается, это где-то у тебя косяк в коде
Zlatoslav Desyatnikov
@zlodes
Aug 04 2017 19:14
@SerafimArts только хотел написать про печенье..
Tinboy
@Tinboy
Aug 04 2017 19:18
@SerafimArts в каком коде?
@SerafimArts ларка бы кинула ошибку ,не?
@SerafimArts походу нашел
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:19
@Tinboy в коде до инициализации хендлера исключений
например в конфигах
Tinboy
@Tinboy
Aug 04 2017 19:20
public function __construct()
    {
        $this->setTitle('Title not stated');

        $this->middleware(function ($request, $next) {
            if(Auth::check()){
            $this->user = Auth::user();
            view()->share('u', $this->user);
        }
            return $next($request);
        });


        $this->redis = Redis::connection();
        view()->share('steam_status', $this->getSteamStatus());
    }

    public function  __destruct()
    {
        dd($this->redis);
        $this->redis->disconnect();
    }
в __destruct $this->redis - null
и он кидал,что нельзя применить disconnect к null
из-за чего может быть null ?
JhaoDa
@jhaoda
Aug 04 2017 19:23
@Tinboy оформление кода поправь
Tinboy
@Tinboy
Aug 04 2017 19:23
@jhaoda а как его вообще ставить?
JhaoDa
@jhaoda
Aug 04 2017 19:24
@Tinboy в правилах написано, которые при входе в чат показываются. Ты их читать не стал?
@Tinboy оформи код
KarmaBot
@KarmaBot
Aug 04 2017 19:24
@Tinboy, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой «Ё»).
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка M↓ внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
Tinboy
@Tinboy
Aug 04 2017 19:24
@jhaoda оке,спасибо
KarmaBot
@KarmaBot
Aug 04 2017 19:24
Спасибо (+1) для @jhaoda принято! Текущая карма +1579.
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:26
@Tinboy а нафига ты дисконнектишься?
соединение и так закрывается при завершении работы
ну и ответ довольно простой, значит Redis::connection() возвращает null
Tinboy
@Tinboy
Aug 04 2017 19:28
@SerafimArts да,я проверил)он возвращет null
@SerafimArts почему такое может быть?)
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 19:35
@Tinboy соединение потерялось
ну хз, надо смотреть почему нулл возвращает
это контроллер, так что кажется оно уже проинициализированно должно быть
Tinboy
@Tinboy
Aug 04 2017 19:38
@SerafimArts тупой вопрос ,но все же,когда я прописываю Redis::connection, редис сам как-то запускается или мне в консоли надо прописать redis-server
slider23
@slider23
Aug 04 2017 19:51
@Tinboy нет, он коннектится к работающему в этот момент редису. Сервер должен быть запущен.
opensgame
@opensgame
Aug 04 2017 19:56
@SerafimArts vendor есть
composer install попробывал, теперь поставил отображение всех ошибок и ничего вообще
Kirill Nesmeyanov
@SerafimArts
Aug 04 2017 20:39
@opensgame vendor есть, а vendor/autoload.php нету?
магия
georgiychernobay
@georgiychernobay
Aug 04 2017 23:13
привет, кто поможет освоить Ларку?
KarmaBot
@KarmaBot
Aug 04 2017 23:13
@georgiychernobay и тебе не хворать :)
@amerov и тебе не хворать :)
georgiychernobay
@georgiychernobay
Aug 04 2017 23:18
практике море, туплю на основах
не пойму как внутри все работает
Evgeny Stefanenko
@KomAuras
Aug 04 2017 23:34
Нажатие на Home (на клавиатуре) в Chrome у всех сломалось? На Windows
georgiychernobay
@georgiychernobay
Aug 04 2017 23:35
юзаю убунту
Evgeny Stefanenko
@KomAuras
Aug 04 2017 23:36
@georgiychernobay чем мне помог ваш комментарий?