These are chat archives for LaravelRUS/chat

26th
Aug 2015
dencher
@dencher
Aug 26 2015 02:29

Прошу помощи! Никак не могу вникнуть в тонкости relationships. Всю документацию уже на 2 раза перечитал.... Тестовый стенд простой: есть издательства, есть жанры книг, есть названия книг (суть сама книга). Прописанные условия (почти как в жизни):

  1. Издательства выпускают книги разных жанров, но с уникальными названиями
  2. Соответственно, жанры могут быть выпущены разными издательствами
  3. Название и жанр (даже только название) прямо указывают на конкретное издательство

Цель на данный момент: запросом выбрать издательства, выпустившие книги в конкретном жанре. Второй день голову ломаю :( Как над построениями отношений, так и на конкретных методах для выборки. В доках то find, то where, то ещё как-то... Ягодицами чую, что должно быть как-то просто, при наличии правильно связанных моделей

Maxim
@Big-Shark
Aug 26 2015 02:33
@dencher эмм, все же очень просто Издатели::whereHas('жанр', function ($query) {
$query->where('жанр', '=', 1);
})->get();
dencher
@dencher
Aug 26 2015 02:53
Ммм... Не работает. Не просто не тот результат, а вообще ошибку. Судя по всему, в модели нет метода whereHas
Laravel 5.1, если это важно
Mikhail Donskoy
@mdnsk
Aug 26 2015 03:01
@dencher В моделях связи настроены?
Maxim
@Big-Shark
Aug 26 2015 03:04
@dencher просто ошибку? что значит просто ошибку? у ошики есть тест, а часто еще и строчка в которой произошла ошибка
dencher
@dencher
Aug 26 2015 03:05
Изначально вопрос касался и того, как правильно в моделях настроить связи :) Издатель hasMany(Название) и Издатель hasMany(Жанр) -- это правильно?
Maxim
@Big-Shark
Aug 26 2015 03:06
@dencher ну вроде да, только смотри, с жанрами наверное у тебя будет связь многие ко многим
dencher
@dencher
Aug 26 2015 03:09
Вот-вот-вот! Тут я и подбираюсь к самому интересному :) Название -- оно hasOne(Жанр) и hasOne(Издательство) или belongsTo? Тут у меня явная путаница. И в модели Жанр никакой связи не прописано, поскольку предполагалось, что эта сущность вообще ни от чего не зависит. Но, судя по условиям задачи, придётся прописывать
Вот только как?
Точнее, как правильно/грамотно? Боюсь наворотить сейчас костылей...
Maxim
@Big-Shark
Aug 26 2015 03:10
@dencher ты вначали русским языком опиши эти связь, а потом уже найти их в ларе
dencher
@dencher
Aug 26 2015 03:11
Описано в вопросе ;)
Maxim
@Big-Shark
Aug 26 2015 03:12
@dencher нее, описываешь так "У одного издателя может быть много жанров", "Жанр связан по не принадлежит издательству", и тд, и когда ты их опишешь для себя, ты поймешь как их построить
dencher
@dencher
Aug 26 2015 03:15
Как описать "Жанр принадлежит названию, а Название принадлежит Издательству"? И в каком месте/как делать выборку "Издательства, выпустившие названия определённых жанров"?

@Big-Shark вот это Издатели::whereHas('жанр', function ($query) {
$query->where('жанр', '=', 1);
})->get();

У меня сейчас выдаёт ошибку, что в таблице жанров нет поля-ссылки на Издательство. И это правильно, потому что эта связь излишняя. Надо как-то плясать запросом от Названия -- в таблице Названий есть ссылки на Издательство и Жанр

Maxim
@Big-Shark
Aug 26 2015 03:19
@dencher жанр не принаджлежит названию, если удалить названия жанр удалится? нет, 1 жанр относится к 1 названию? нет, жанр сам по себе, название само по себе
dencher
@dencher
Aug 26 2015 03:21
Связи у Названия сейчас belongsTo(Жанр) и belongsTo(Издательство). В Жанрах никаких связей не прописано
dencher
@dencher
Aug 26 2015 03:32

@Big-Shark без ошибок сработал вот такой вариант
Название::whereHas('жанр', function ($query) {
$query->where('жанр', '=', 1);
})->get();

Печаль в том, что он возвращает именно Названия с определённым Жанром (как и выглядит, собственно). В коллекции, конечно, присутствует индекс Издательства, но как получить их уникальные значения?

Maxim
@Big-Shark
Aug 26 2015 03:33
Ты можешь написать этот запрос на чистом sql?
dencher
@dencher
Aug 26 2015 03:43
Думаю, да
dencher
@dencher
Aug 26 2015 03:49
SELECT distinct Издательства.name FROM Издательства,Названия WHERE (Названия.Жанр_id=Дефектив and Издательства.id=Названия.Издательства_id)
Проверил -- возвращает в точности то, что мне нужно
dencher
@dencher
Aug 26 2015 03:56
Без ошибок работает даже такой запрос Название::find(1)->Издательство->ИмяИздательства. Но толку с него нет -- где писать уcловие?
Maxim
@Big-Shark
Aug 26 2015 04:05
Название::wirh('Издательства')->where('Жанр_id', 'Дефектив')->get()
dencher
@dencher
Aug 26 2015 04:10
Возвращает кучу Названий ;) Как вытащить уникальные Издательства?
Maxim
@Big-Shark
Aug 26 2015 04:13
@dencher хрен его знает, пиши запрос через квери билдер)
dencher
@dencher
Aug 26 2015 04:14
@Big-Shark это неспортивно :) :) :)
Да и ПОНИМАНИЯ связей не прибавится. А хочется именно понять
Maxim
@Big-Shark
Aug 26 2015 04:14
@dencher я не использую элоквоент, поэтому подсказать не могу)
Mikhail Donskoy
@mdnsk
Aug 26 2015 04:23
@dencher так попробуй связь построить http://laravel.com/docs/5.1/eloquent-relationships#has-many-through
dencher
@dencher
Aug 26 2015 04:52
@BaldaI я правильно понимаю, что должно быть как-то так: Издательство hasMany(Жанр, Название) ?
Maxim
@Big-Shark
Aug 26 2015 04:53
@dencher это так не работает, у тебя странная схема бд, не стандартная скажем так
Mikhail Donskoy
@mdnsk
Aug 26 2015 04:54
@dencher Я не работал с этим типом связей.
Попробуй hasManyThrough(Название, Жанр)
dencher
@dencher
Aug 26 2015 04:58
Сделал. Как теперь с этим работать?
Mikhail Donskoy
@mdnsk
Aug 26 2015 05:04
$издатель->названия
Для доступа $название->издатели в модели Названия надо сделать связь hasManyThrough(Издатель, Жанр).
dencher
@dencher
Aug 26 2015 05:09
По-моему, тут политическая ошибка. Связь Название->Издатели не может быть hasMany/HasManyThrough, ибо она единственная
Mikhail Donskoy
@mdnsk
Aug 26 2015 05:25
@dencher
Издательство::newQuery()
    ->join('названия', 'издательство.id', '=', 'название.издательство_id')
    ->join('жанр', 'название.жанр_id', '=', 'жанр.id')
    ->where('жанр.название_жанра', 'Детектив)
    ->get('Идательства.*');
dencher
@dencher
Aug 26 2015 05:42
Именно такое называется костылём, не так ли? ;)
Maxim
@Big-Shark
Aug 26 2015 05:42
@dencher помойму твоя схема бд называется костылем)
Mikhail Donskoy
@mdnsk
Aug 26 2015 05:44
@dencher Иначе невозможно выразить твой SQL-запрос. Laravel не использует JOIN для связей.
dencher
@dencher
Aug 26 2015 05:44
Если не опускаться до оскорблений -- что не так со схемой БД? Три простейшие таблицы без избыточности
@Big-Shark в моём случае как должна выглядеть стандартная схема? Я далеко не мастер ни в архитектуре БД, ни в php
Maxim
@Big-Shark
Aug 26 2015 05:47
@dencher мы тут уже несколько часов помойму обсуждаем как это сделать, а я так толком и не смог понять даже твою схему, это навевает на мысль что тут чтото не так)
@dencher ну наверное название нужно заменить на книга, и у книги наверное будет несколько жанров, а не 1 (хотя я не уверен с книгами)
@dencher изнательство тогда получается связано с книгами как один ко многим, а жанр связан скнигами как мнугие ко многим, жанр с изданием не связан
@dencher и так как лара не использует джеины, тут скорее всего или писать чистый запрос, или попробовать использовать 2 whereHas, что в теории должно помочь
dencher
@dencher
Aug 26 2015 05:49

Издательство:
id
name

Жанр:
id
name

Книга (пусть будет уже Книга, не принципиально)
id
title
Жанр_id
Издательство_id

Maxim
@Big-Shark
Aug 26 2015 05:49
@dencher я возможно даже whereHas, может применятся к под связяс, я точно не зна.
dencher
@dencher
Aug 26 2015 05:49
Вот и вся схема. У Книги один Жанр, в моём случае это принципиально
Maxim
@Big-Shark
Aug 26 2015 05:50
ок, тогда все просто, и тебу нужно получить издатесльства у которых есть книги с определенным жанром, верно?
dencher
@dencher
Aug 26 2015 05:50
Точно! Причём список без повторений
Qweqwe1234
@Qweqwe1234
Aug 26 2015 05:52
Всем доброго. Подскажите что использовать если есть необходимость каждый новый день создавать новую запись в бд, то есть в 00.00. Пока только две идеи и обе бредовые: при каждом новом запросе проверять есть ли запись с текущим днем, если нет то создавать новую(но запросов будет много не думаю что дополнительное условие нейтрально скажется на производительности), или запихать в крон выполнение скрипта, но возможно есть другие способы получше?
@Qweqwe1234 крон конечено)
Qweqwe1234
@Qweqwe1234
Aug 26 2015 05:53
@Big-Shark а средствами laravel совсем никак?(
А если на хостинге не будет доступа к крону
Maxim
@Big-Shark
Aug 26 2015 05:54
@Qweqwe1234 ну в ларе есть шедулер, но все равно вызов шедулера пихается в крон)
@Qweqwe1234 тогда н... такой хостинг
Qweqwe1234
@Qweqwe1234
Aug 26 2015 05:54
Ну вот, так то лучше =) спасибо)
dencher
@dencher
Aug 26 2015 06:00
@Big-Shark чую какую-то засаду между hasOne и belongsTo :( В моём случае для Книги что правильней/грамотней использовать?
Mikhail Donskoy
@mdnsk
Aug 26 2015 06:01
@dencher belongsTo
Maxim
@Big-Shark
Aug 26 2015 06:01
@dencher первое это имеет, второй принадлежит, допустим пользователь иммет связь с таблицей профилей, как 1 к 1, а вот профиль уже принадлежит пользователю
@dencher грубо говоря, это будет указания на то в какой таблице будет указываться ид связь
@dencher в таблице пользователя будет profile_id, или в таблице профилей будет user_id
@dencher книга пренадлежит изданию, но имеет жанр
@dencher поэтому я и говорил постарайся описать русским текстом связи в таком виде)
dencher
@dencher
Aug 26 2015 06:03
Где тут охреневший смайлик? :)
Maxim
@Big-Shark
Aug 26 2015 06:04
@dencher Хрен знает, но мне нехватает часто смайлика :фейспалм:
:facepalm:
dencher
@dencher
Aug 26 2015 06:06
@Big-Shark меня терзают смутные сомнения... Нет, не могу выразить вербально...
Maxim
@Big-Shark
Aug 26 2015 06:08
@dencher вырази невербально)
dencher
@dencher
Aug 26 2015 06:11
@Big-Shark в голове что-то крутится, крутится по этому поводу... Как собака: всё понимаю, а сказать не могу :) Как элегантно решить мою задачу всё равно не понял. Видимо, придётся читерствовать :(
Maxim
@Big-Shark
Aug 26 2015 06:15
@dencher дык я же тебе ссылку на стек оферфлоу кинул, там 3 вариант решения в первом комменту
dencher
@dencher
Aug 26 2015 06:17
@Big-Shark пытаюсь врубиться, как это натянуть на свою ситуацию
Maxim
@Big-Shark
Aug 26 2015 06:23
@dencher ну думай, но вроде решение достаточно легкое
dencher
@dencher
Aug 26 2015 06:41
@Big-Shark уфф, готово!
@Big-Shark правда, несколько перанально получилось, я думал будет проще :)
Maxim
@Big-Shark
Aug 26 2015 06:44
@dencher это связано с тем что элоквоент на работает с join, ну и вообще еще много с чем не работает, поэтмоу я не использую его а использую propel )
Oleg
@Malezha
Aug 26 2015 06:49
@Big-Shark нужно будет как то попробовать это знаменитый пропел =)
Не даром же ты его рекламишь так активно.
Maxim
@Big-Shark
Aug 26 2015 06:52
@dencher http://sandbox.propelorm.org/4533fd0 вот тут вроде как 2 запрос должен вернуть то что беде по идеи надо
@dencher запрос выполняет так
SELECT author.ID, author.FIRST_NAME, author.LAST_NAME FROM `author` INNER JOIN `book` ON (author.ID=book.AUTHOR_ID) WHERE book.TYPE_ID=1
@dencher @Malezha Это я для сравнения лары и пропела так сказать)
@Malezha Если будут попросы по пропелу, спрашивай, постараюсь ответить)
dencher
@dencher
Aug 26 2015 06:55

@Big-Shark и обошёлся, кстати, без hasManyThrough. То есть получилось так

Издательство::whereHas('Книга', function($q) {
$q->where('Жанр_id', 'Дефектив');
})->get();

В модели Издательство есть такое:
public function Книга() {
return $this->hasMany('App\Книга');
}

И всё заработало как часы. То есть, затык был именно в формате запроса

Maxim
@Big-Shark
Aug 26 2015 06:55
@dencher используй маркдаун синтаксис ``` для оформления кода
dencher
@dencher
Aug 26 2015 06:56
@Big-Shark совсем без понятия что такое маркдаун :)
Maxim
@Big-Shark
Aug 26 2015 06:56
@dencher ну тогда бегом в гугл читать
dencher
@dencher
Aug 26 2015 06:57
public function eqmodel() { return $this->hasMany('App\EqModel'); }
Ишь ты...
Oleg
@Malezha
Aug 26 2015 06:58
@Big-Shark хорошо, но для начала нужно глянуть, что он из себя представляет)
Может заюзаю на личном проекте каком.
Maxim
@Big-Shark
Aug 26 2015 06:58
Уже лечше, а если будет еще и писать ```php и делать перенос на новую строчку, будет вообще замечательно
dencher
@dencher
Aug 26 2015 06:58
public function eqmodel() {
        return $this->hasMany('App\EqModel');
    }
Вах! :)
Maxim
@Big-Shark
Aug 26 2015 07:00
@Malezha кстати, самый удобный вариант просто потыкать пропел, это зайти на сендбокс, и там жмякнуть на кнопку скачать архив, сразу получить небольшое приложения с парой моделик, бд, и прочим, просто посмотреть как он запросы делает и тд
dencher
@dencher
Aug 26 2015 07:00
Можно сказать, день не зря прошёл. Правда, впереди ещё куча всякого -- у книг есть ещё и размеры, и кол-во страниц, и (о, ужас!) автор/авторы
Maxim
@Big-Shark
Aug 26 2015 07:03
@dencher ну звучит не очень страшно)
dencher
@dencher
Aug 26 2015 07:07
@Big-Shark ещё вопрос и я пойду клепать модели :) Модель User можно напрямую модифицировать (с нужными миграциями, конечно) или нужно наследоваться во что-то своё? Типичный (наверное) пример -- добавить поле пути к юзерскому аватару
Oleg
@Malezha
Aug 26 2015 07:09
@dencher можно модифицировать, все нужное для авторизации в трейтах.
Maxim
@Big-Shark
Aug 26 2015 07:09
@dencher можно модифицировать и не парится
Alexander
@Dualse
Aug 26 2015 07:12
Всем привет. Есть ли что почитать по ларе бесплатное, кроме доков?
dencher
@dencher
Aug 26 2015 07:12
@Big-Shark @Malezha спасибища!
Maxim
@Big-Shark
Aug 26 2015 07:13
@Dualse весь инет забит инфой о ларе
Alexander
@Dualse
Aug 26 2015 07:16
@Big-Shark Я про книжечки
Maxim
@Big-Shark
Aug 26 2015 07:16
@Dualse тогда не знаю, не читаю книжки по фреймверкам.
Да и языкам вообщем
Alexander
@Dualse
Aug 26 2015 07:17
@Big-Shark Знания черпаете из статей и практического выполнения?
Maxim
@Big-Shark
Aug 26 2015 07:18
@Dualse угу, из книжек могу почитать что-то только про архитектуру и подходы
Да и тут все чаще читаю блоги и статьи
Alexander
@Dualse
Aug 26 2015 07:28
@Big-Shark Блоги в основном на английском?
Maxim
@Big-Shark
Aug 26 2015 07:28
@Dualse когда как)
dencher
@dencher
Aug 26 2015 07:28
@Big-Shark есть хорошие ссылки по Laravel 5? Инет забит инфой о 4 версии. Язык рус/англ, не важно
dencher
@dencher
Aug 26 2015 07:33
@Big-Shark о-о-о, супер! Записал себе в бальную книжечку... :+1:
Maxim
@Big-Shark
Aug 26 2015 07:34
@dencher ты даже не представляешь себе как я это загуглил)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 07:37
@Big-Shark ногой? о_0
Maxim
@Big-Shark
Aug 26 2015 07:37
@SerafimArts рукой, но 1 пальцем
Seba
@Siebov
Aug 26 2015 08:27
всем привет

ставлю ларавел
выдаёт ошибку

Warning: require_once(D:\srv\OpenServer\domains\sebalaravel.local\laravel\bootstrap/../vendor/autoload.php): failed to open stream: No such file or directory in D:\srv\OpenServer\domains\sebalaravel.local\laravel\bootstrap\autoload.php on line 17

Fatal error: require_once(): Failed opening required 'D:\srv\OpenServer\domains\sebalaravel.local\laravel\bootstrap/../vendor/autoload.php' (include_path='.;d:/srv/openserver/modules/php/PHP-5.6;d:/srv/openserver/modules/php/PHP-5.6/PEAR/pear') in D:\srv\OpenServer\domains\sebalaravel.local\laravel\bootstrap\autoload.php on line 17

думал полечить это composer install composer update

но не тут-то было.

ошибка

Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in D:\srv\OpenServer\domains\sebalaravel.local\laravel\artisan on line 31
Script php artisan clear-compiled handling the pre-update-cmd event returned with an error

как это лечится?

dencher
@dencher
Aug 26 2015 08:30
@Big-Shark у меня тоже уже кучка нагугленного есть ;)
@Sebbba второе лечится увеличением версии php до 5.5.9 минимум, если не ошибаюсь
Seba
@Siebov
Aug 26 2015 08:32
@dencher переключил модуль на PHP 5.6 та же байда.
если что, вся эта красота стоит у меня на OpenServer
Maxim
@Big-Shark
Aug 26 2015 08:32
@Sebbba php -v ?
JhaoDa
@jhaoda
Aug 26 2015 08:33
При чем тут опенсервер — не понятно
Seba
@Siebov
Aug 26 2015 08:34
@Big-Shark
PHP 5.6.3 (cli) (built: Nov 12 2014 17:18:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
    with the ionCube PHP Loader v4.7.2, Copyright (c) 2002-2014, by ionCube Ltd.
Maxim
@Big-Shark
Aug 26 2015 08:36
@Sebbba ага, а ты лару давно ставил? и как ты ее вообще ставил?
JhaoDa
@jhaoda
Aug 26 2015 08:36
Единственная правильная проверка — вызвать функцию phpinfo() второй строчкой в index.php
Потому что в cli-режиме может быть другая версия
Maxim
@Big-Shark
Aug 26 2015 08:38
@jhaoda так ошибка в кли и свалилась)
JhaoDa
@jhaoda
Aug 26 2015 08:38
А, точно
Seba
@Siebov
Aug 26 2015 08:38

@Big-Shark только что ставил.

composer create-project laravel/laravel --prefer-dist

JhaoDa
@jhaoda
Aug 26 2015 08:38
Ну это весьма странно тогда
Версия даже больше, чем надо, а ругается как на меньшую
Я вижу только одно объяснение
Seba
@Siebov
Aug 26 2015 08:39
кривые ручки мои?
JhaoDa
@jhaoda
Aug 26 2015 08:39
Версия все же не та
Maxim
@Big-Shark
Aug 26 2015 08:39
а я всеж за ручки)
SergeyMiracle
@SergeyMiracle
Aug 26 2015 08:40
openserver зло ^_^
Maxim
@Big-Shark
Aug 26 2015 08:40
@SergeyMiracle это да)
Seba
@Siebov
Aug 26 2015 08:40
ты знаешь, очень странная штука. дома ставили - переставлял стопитсотраз. а вот на этот ноут, всё время лажа какая-то... но это думаю, совпадение
Maxim
@Big-Shark
Aug 26 2015 08:40
@Sebbba покажи 31 строчку в артизане
JhaoDa
@jhaoda
Aug 26 2015 08:41
@Sebbba открой файл artisan, третьей строкой напиши echo phpversion(); die();
А потом запусти его
Seba
@Siebov
Aug 26 2015 08:41
офигеть ... прошёл composer update ....
теперь уже какая-то ларовская ошибка на экране, но это я найду
JhaoDa
@jhaoda
Aug 26 2015 08:41
И как всегда, ты ничего не делал, ничего не менял
Seba
@Siebov
Aug 26 2015 08:42
честное слово, ничего не енял
ха!
опередил
ну да
ну менял
JhaoDa
@jhaoda
Aug 26 2015 08:42
Оно само. Само сломалось, само починилось.
Seba
@Siebov
Aug 26 2015 08:42
*зуб даю!
Maxim
@Big-Shark
Aug 26 2015 08:42
И вот на кой тогда я сейчас чистую лару для теста начал поднимать?
JhaoDa
@jhaoda
Aug 26 2015 08:42
Le magie! Sorginkeria da! Уальшипствооо!
Seba
@Siebov
Aug 26 2015 08:43
@Big-Shark эт вы, батенька, поторопились
@jhaoda ты знаешь, эт реально заговор какой-то. бьёшься час - ноль на массу. стоит спросить и само заработало.
ВОССТАНИЕ МАШИН!!! а ты говоришь, уальшипство)
4502040
@4502040
Aug 26 2015 08:47
как получить доступ к методу без создания экземпляра модельки ?
типа как в yii; My::model()->getList() ??
jongleb
@jongleb
Aug 26 2015 08:49
Ребят в какой готовый класс лучше складывать свой дополнительный функционал. К примеру я хочу дополнить UserController на управление но по Сингл Респонсибле мне бы лучше создать класс UserManager где хранить связанные с управлением вещи там и вызывать из контроллер,так в каких из готовых классах от ларавл лчше держать такой класс?
Сергей
@egent
Aug 26 2015 08:49
null@4502040 News::all()
jongleb
@jongleb
Aug 26 2015 08:50
Нужен какой то фасад? или как лучше?
Maxim
@Big-Shark
Aug 26 2015 08:50
null@4502040 что значит доступ к методу без создания экземпляра? метод статичный или нет? Если нет, то нужно делать новую модель, и вызывать ее метод, ну или через фасады
null@4502040 у юии также создастся модель, и вернется методом model
@jongleb да просто создаешь класс, кидаешь в контейнер, потом через ди его прокидываешь, и вуаля
jongleb
@jongleb
Aug 26 2015 08:52
@Big-Shark Спасибо а можно доку про кидание в контейнер
JhaoDa
@jhaoda
Aug 26 2015 08:52
@jongleb это в доке по ларавель написано
дада оно
тока на 5.1
такую найти не могу
JhaoDa
@jhaoda
Aug 26 2015 08:53
Какую «такую»?
Maxim
@Big-Shark
Aug 26 2015 08:53
@jongleb там вроде ничего не поменялось
JhaoDa
@jhaoda
Aug 26 2015 08:53
А на какую версию надо?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 08:53
JhaoDa
@jhaoda
Aug 26 2015 08:54
@SerafimArts то же самое
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 08:54
зато своими словами и на русском
JhaoDa
@jhaoda
Aug 26 2015 08:54
@SerafimArts http://laravel.su/articles/understanding-ioc это то же самое, что кинул ты
спасибо пацаны
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 08:55
@jhaoda о, на su я не смотрел
ладно, 1-0 в твою пользу =)
Maxim
@Big-Shark
Aug 26 2015 08:56
Думаю скоро все будт тут https://github.com/greabock/articles
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 08:57
думаю лучше на su перекидывать
stranger-ru
@stranger-ru
Aug 26 2015 08:57

Всем привет.

Скажите пжл, например на сайте есть форма поиска, из нее отправляются get параметры в контроллер. Можно ли как-то динамически строить фильтры условий запроса по пришедшим в get параметрам. Т.е. не писать если пришел такой параметр, то сделай where(....), а просто прописать один раз запрос, где указать что-то вроде orFilter(....) и чтобы система сама строила условия запроса, в зависимости от пришедших get параметров?

Maxim
@Big-Shark
Aug 26 2015 08:57
@SerafimArts кого перекидывать?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 08:57
артиклы
Maxim
@Big-Shark
Aug 26 2015 08:58
@stranger-ru ну ты можешь сделать массив допустимых ключей, потом делать сопоставления, и потом в цикле делать where, ничего сложного вроде
stranger-ru
@stranger-ru
Aug 26 2015 08:59
@Big-Shark ок, спасибо. Просто думал, может есть что-то встроенное для этого, видимо нет, да?
Maxim
@Big-Shark
Aug 26 2015 08:59
@stranger-ru видимо нет, и это хорошо)
stranger-ru
@stranger-ru
Aug 26 2015 08:59
@Big-Shark а чем хорошо?
Maxim
@Big-Shark
Aug 26 2015 09:01
@stranger-ru это не безопасно
@SerafimArts ну я думаю можно их будт от туда на сайт брать
С почином меня
Maxim
@Big-Shark
Aug 26 2015 09:11
@jhaoda статеечка от тебя? Почитаем, почитаем)
JhaoDa
@jhaoda
Aug 26 2015 09:12
@Big-Shark не совсем статеечка, скорее толстый сниппет
jongleb
@jongleb
Aug 26 2015 09:29
Ребят
еще вопрос
кто нибудь делает еще один слой между контроллером
и моделью
типа репозитоиев итд
Maxim
@Big-Shark
Aug 26 2015 09:29
@jongleb нет, но у меня пропел, тут по другму)
вообще репозитории и ар не совместимв
имхо
jongleb
@jongleb
Aug 26 2015 09:30
ар?
Maxim
@Big-Shark
Aug 26 2015 09:30
активрекорд
jongleb
@jongleb
Aug 26 2015 09:30
АА
ну не просто вот попалась статья затертая где репозитории используются
ну ладно
я понял в общем тебя спасибо!
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 09:37
@jhaoda с почином тебя
=)
censoredgit
@censoredgit
Aug 26 2015 09:37
@jongleb я делаю слой сервис/менеджер в котором вся логика.
jongleb
@jongleb
Aug 26 2015 09:38
Вот сейчас так сделал
jongleb
@jongleb
Aug 26 2015 09:52
Ребят смотрите вызываю это дело
class UserManager
{
    private $level;

    public function __construct(){
        $this->level=Auth::user()->level;
    }

    public function levelManagement(){
       return User::where('level','>',$this->level)->get();
    }
}
public function index(UserManager $userManager)
    {
        $userManager->levelManagement();
Maxim
@Big-Shark
Aug 26 2015 09:53
@jongleb у тебя очень странный код, зачем ты делаешь запрос при levelManagement?
@jongleb что вообще такое levelManagement ?
jongleb
@jongleb
Aug 26 2015 09:54
Юзеры которыми может управлять юзер
т.е если у меня левел 0 я могу управлять всеми кто выше 0
типа того
индекс это из контроллера индекса
а в ответ приходит всместо массива тупо 1
а 1 это как раз мой текущий левел
Почему так происходит а как поправить
Maxim
@Big-Shark
Aug 26 2015 09:56
    public function levelManagement(){
       return dd(User::where('level','>',$this->level)->get());
    }
jongleb
@jongleb
Aug 26 2015 09:56
Если дд это типа дампа то я уже смотрел там массив
Maxim
@Big-Shark
Aug 26 2015 09:57
@jongleb dd($userManager->levelManagement());
jongleb
@jongleb
Aug 26 2015 09:57
Оочень интересно
return dd(User::where('level','>',$this->level)->get());
Вернуло массив
Maxim
@Big-Shark
Aug 26 2015 09:58
Ну нормально
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 09:58
в теории оно должно объект collection возвращать
не?
jongleb
@jongleb
Aug 26 2015 09:58
Собственно как и dd($userManager->levelManagement());
масив
Maxim
@Big-Shark
Aug 26 2015 09:59
@jongleb тогда о чем ты говоришь когда говоришь вернуло 1 ?
jongleb
@jongleb
Aug 26 2015 10:00
О return User::where('level','>',$this->level)->get() и дампе этого в контроллере
на счет коллекций пойду поробую туЭррэй сделать
Maxim
@Big-Shark
Aug 26 2015 10:01
Ты же пишешь "Собственно как и dd($userManager->levelManagement()); Вернуло массив"
jongleb
@jongleb
Aug 26 2015 10:01
Нет что то как то не помогло
ну '''
$userManager->levelManagement();
dump($userManager);'''
Maxim
@Big-Shark
Aug 26 2015 10:01
@jongleb так у тебя 1 вернулось, или массив?
jongleb
@jongleb
Aug 26 2015 10:02
вот так у меня 1
Maxim
@Big-Shark
Aug 26 2015 10:02
@jongleb фейспалм
jongleb
@jongleb
Aug 26 2015 10:02
Балин
аХАХАХАХ
ВНАТУРЕ
Maxim
@Big-Shark
Aug 26 2015 10:02
присваевание в переменную?
jongleb
@jongleb
Aug 26 2015 10:02
ААЖжа
пывпап
ДАДАААДДА
точно
что за фтгню я пишу ваще
Maxim
@Big-Shark
Aug 26 2015 10:02
и там не 1, а наверное класс с переменной 1
jongleb
@jongleb
Aug 26 2015 10:02
@Big-Shark :heart: :heart: :heart: :heart:
Maxim
@Big-Shark
Aug 26 2015 10:03
Я бы предпочел :beer: за место :heart:
jongleb
@jongleb
Aug 26 2015 10:03
Высылаю тебе ящик
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 10:04

@jongleb
ААЖжа
пывпап
ДАДАААДДА

Пациенту плохо, требуется срочное вливание хаскеля!

Maxim
@Big-Shark
Aug 26 2015 10:05
@jongleb я вчера купил ящик (24*330), но срадостью приму еще 1 такой)
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:05

Всем привет, ребята! :)
Полдня бьюсь над одной ошибкой, и не могу понять в чём дело :(
Есть две таблицы users и utypes (от слова User Types - "Типы пользователей")

|users            |            utypes|
_____________________
id                    |           id            |
username   |  type_name |
password    |------------------
type_id        |
----------------

В моделях связь устроена таким образом.
Класс User

public function utype()
    {
        return $this->belongsTo('App\Utype', 'type_id');
    }

Класс Utype

public function users()
{
       return $this->hasMany('App\User', 'type_id');
    }

Вбиваю команду:

$user = App\User::first();
$user->utype->toArray();

и такая ошибка (хоть с одной модели хоть с другой):

LogicException with message 'Relationship method must return an object of type Illuminate\Database\Eloquent\Relations\Relation'

В чём может быть проблема?

Maxim
@Big-Shark
Aug 26 2015 10:05
Мой адрес 14/4 Moo 3, Soi Palai, Tambon Chalong, Amphur Muang, Phuket 83130
@Nur777 а ты нас не обманываешь с тем как у тебя все в классах?
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:07
Ну, короче, т. users (id, username, password, type_id)
т. utypes(id, type_name)
@Big-Shark эмм, нет, а в чём дело?
Я не могу понять в чём дело, по-моему я так всё идеально написал... :(
м.б. комп перезагрузить :) - это ещё не сделал)))
Maxim
@Big-Shark
Aug 26 2015 10:08
@Nur777
$user = App\User::first();
dd($user->utype());
jongleb
@jongleb
Aug 26 2015 10:08
@Big-Shark да ты из паттаи?
достали крысы
как ты там живешь
Maxim
@Big-Shark
Aug 26 2015 10:09
@jongleb я с пхукета, и крыс у нас нет
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:09
хммм, но так же вызывается... не то, что я хотел бы, ну ладно, сейчас попробую)
jongleb
@jongleb
Aug 26 2015 10:09
Я думал в сказку попаду а на деле провода над бошкой и крысы
аа понятно тогда
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:09
@Big-Shark имею ввиду, так же связь не вызывается, ну ты наверняка не будешь предлагать что-то просто так)
Maxim
@Big-Shark
Aug 26 2015 10:09
@jongleb хз, у нас все норм, крыс видел пару раз всего за 3 месяца, и не разу дома или возле дома не видел
@Nur777 погодь, там дамп должен был чтото вернуть, что вообще вывалилось?
jongleb
@jongleb
Aug 26 2015 10:11
@Big-Shark До пхукета так и не доехал( дороже паттаи отдых
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:11
@Big-Shark да, такая ужасная простыня! О_О что с ней делать?
Maxim
@Big-Shark
Aug 26 2015 10:11
@jongleb ну вот поэтому видать там у вас и крысы)
@Nur777 первые 3 строчки кинь мне
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:12
я вижу там есть и поля от моей таблицы типов!
ок
@Big-Shark я запускал в терминале, а терминал почему-то верхнюю часть не показывает, слишком длинная простыня... что делать.?
Maxim
@Big-Shark
Aug 26 2015 10:14
@Nur777 как вы мне все дороги)
dd(get_class($user->utype()));
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:15
@Big-Shark спасибо, вот, если бы не такие как ты, - такие как мы просто пропали бы! :)
BelongsTo {#158 ▼
  #foreignKey: "type_id"
  #otherKey: "id"
  #relation: "utype"
  #query: Builder {#154 ▶}
  #parent: User {#159 ▶}
  #related: Utype {#148 ▶}
}
это то, что я сделал потом с браузера.
эмм, имею ввиду, через браузер.
Qweqwe1234
@Qweqwe1234
Aug 26 2015 10:16
Возник такой вопрос, если мне нужна только одна учетка для админа, и больше никаких пользователей не будет, то лучше все равно оставить стандартную авторизацию и в таблицу поместить одного единственного пользователя или свое что-то лепить и попытаться обойтись без таблицы?
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:16
Сейчас по твоему ещё сделаю
Maxim
@Big-Shark
Aug 26 2015 10:16
Прикольно в твиге сделали
The function "parh" does not exist. Did you mean "path" in AppBundle::base.html.twig at line 102
@Qweqwe1234 оставить
Qweqwe1234
@Qweqwe1234
Aug 26 2015 10:17
@Big-Shark спасибо
Maxim
@Big-Shark
Aug 26 2015 10:17
@Qweqwe1234 а вообще можно и бейсик аут присобачить, он есть почти из коробки
dencher
@dencher
Aug 26 2015 10:17
Туплю на ровном месте... В контроллере делается вызов Conversation::whereRaw(). Ларчик орёт про Class 'App\Http\Controllers\Conversation' not found. Что прописать в use?
Maxim
@Big-Shark
Aug 26 2015 10:17
@Nur777 теперь давай так dd(get_class($user->utype()->first()));
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:17
@Big-Shark ок)
Qweqwe1234
@Qweqwe1234
Aug 26 2015 10:18
@Big-Shark В принципе если стандартная работает и вместе с ней уже есть и мидлвари, и это нормально использовать таблицу для одной записи, то действительно смысла нет что-либо свое городить
@Big-Shark немного о другом, а почему dd а не dump?
Maxim
@Big-Shark
Aug 26 2015 10:19
@Qweqwe1234 это быстрей, расширяемей, и не скажется особо на скорости, так что особо пофиг
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:19
@Big-Shark
Maxim
@Big-Shark
Aug 26 2015 10:19
@Qweqwe1234 dd = dump and die
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:19
такая же длинная простыня :(
BelongsTo {#158 ▼
  #foreignKey: "type_id"
  #otherKey: "id"
  #relation: "utype"
  #query: Builder {#154 ▶}
  #parent: User {#159 ▶}
  #related: Utype {#148 ▶}
}
Qweqwe1234
@Qweqwe1234
Aug 26 2015 10:19
@Big-Shark ясно, спасибо)
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:19
это если через браузер
Maxim
@Big-Shark
Aug 26 2015 10:20
@Nur777 друг дорогой, ты мне не врешь? Ты точно выполнил мой последний запрос?
Сергей
@egent
Aug 26 2015 10:20
@dencher use App\Conversation
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:20
@Big-Shark да! не хочу врать..
может мне скриншот там сделать как-то что-ли... Честное слово, таким ужасных простынь не видел ещё в своей жизни в консоли.
Maxim
@Big-Shark
Aug 26 2015 10:21
@Nur777 dd(get_class($user->utype()->first())) вот это не может вернуть простыню, тут только 1 строка будет
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:22
хорошо, сейчас я сделаю это ещё раз.
BelongsTo {#158 ▼
  #foreignKey: "type_id"
  #otherKey: "id"
  #relation: "utype"
  #query: Builder {#154 ▶
    #query: Builder {#155 ▶
      #connection: MySqlConnection {#149 ▶
        #pdo: PDO {#150 ▶
          inTransaction: false
          attributes: array:13 [▶
            "CASE" => NATURAL
            "ERRMODE" => EXCEPTION
            "AUTOCOMMIT" => 1
            "PERSISTENT" => false
            "DRIVER_NAME" => "mysql"
            "SERVER_INFO" => "Uptime: 708974  Threads: 1  Questions: 4394  Slow queries: 0  Opens: 92  Flush tables: 1  Open tables: 66  Queries per second avg: 0.006"
            "ORACLE_NULLS" => NATURAL
            "CLIENT_VERSION" => "5.5.44"
            "SERVER_VERSION" => "5.5.44-0ubuntu0.14.04.1"
            "STATEMENT_CLASS" => array:1 [▶
              0 => "PDOStatement"
            ]
Вот, смог получить полный текст через браузер... это только начало.
Я, честное слово! вводил только то, что ты мне последним отправил.
Maxim
@Big-Shark
Aug 26 2015 10:26
@Nur777 покажи код как и где ты это получаешь и выводишь?
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:27
Route::get('look', function () {
    $user = App\User::first();
    dd(get_class($user->utype()->first()));
//    dd($user->utype());
//    return view('app');
});
и потом смотрю в браузере.
Сначала я делал это ч/з bash, т.е. посредством php artisan tinker.
Но там начало теряется, из-за слишком большой длины.
А вот я попробую сохранить и скинуть его!
:fire: @Big-Shark вот я скинул выше этот файл :)
JhaoDa
@jhaoda
Aug 26 2015 10:32
@Big-Shark Это не в твиге сделали, это фишка симфони
Даже артизан подсказывает возможные команды
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:33
Если сделать поиск, и ввести Dev01, то можно увидеть, что всё-таки связь происходит, и выводится связанная запись... где-то там выводит...
Т.е. это тип пользователя из связанной таблицы...
Maxim
@Big-Shark
Aug 26 2015 10:35
@jhaoda тогда симфони молодцы, да я знаю что композер и лара, да и вообще все пакеты которые используют симфони консоль, делают подсказки
NelinD
@NelinD
Aug 26 2015 10:35
@dencher то есть ты пытаешься вызвать метод построителя запроса у контроллера?
Maxim
@Big-Shark
Aug 26 2015 10:35
@jhaoda но удобно что ошибся в твиге в вызове функции, и он подсказал
JhaoDa
@jhaoda
Aug 26 2015 10:36
@Big-Shark ну так это не только консольная фича
Я уже не помню, там или через levenshtein(), или через metafone() сделано
Maxim
@Big-Shark
Aug 26 2015 10:37
@jhaoda да в пхп это делается буквально в 2 строки, мелочь а приятно)
@jhaoda я имею ввиду что очень круто что такие мелочи делают
@Nur777 чет магия
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:40
@Big-Shark ты посмотрел да? ) ну, так же не должно быть... в чём дело интересно...
Maxim
@Big-Shark
Aug 26 2015 10:40
@Nur777
Route::get('look', function () {
    $user = App\User::first();
var_dump(get_class($user));
var_dump(get_class($user->utype()));   
var_dump(get_class($user->utype()->first()));   
die('123 '.time());
});
dencher
@dencher
Aug 26 2015 10:41
@NelinD Вопрос снимается :)
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:41
@Big-Shark последний dd был закомменчен )
так сделать да?
Maxim
@Big-Shark
Aug 26 2015 10:41
@Nur777 обновил
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:42
@Big-Shark сейчас попробую )
!
@Big-Shark всё, что изменилось, это перед всей простынёй вышла вот эта строка:
string(8) "App\User"
и дальше то же, что я тебе уже скинул... хммм, почему лара не слушается нас?....
Maxim
@Big-Shark
Aug 26 2015 10:44
@Nur777 открой файл с моделью, и скинь код функции utype
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:44
ок
О_О @Big-Shark
извини пожалуйста, это я во всём виноват, оказывается, он был таким:
public function utype()
    {
        return dd($this->belongsTo('App\Utype', 'type_id'));
    }
сейчас я уберу dd
Maxim
@Big-Shark
Aug 26 2015 10:45
@Nur777 я уже догадался)
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:45
I`m so sorry man!
string(8) "App\User" string(48) "Illuminate\Database\Eloquent\Relations\BelongsTo" string(9) "App\Utype" 123 1440585958
Maxim
@Big-Shark
Aug 26 2015 10:46
@Nur777
Route::get('look', function () {
    $user = App\User::first();
var_dump(get_class($user->utype));
die('123 '.time());
});
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:47
сек
Maxim
@Big-Shark
Aug 26 2015 10:47
вот так
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:48
@Big-Shark
get_class() expects parameter 1 to be object, array given
Whoops!
ups
счас
Maxim
@Big-Shark
Aug 26 2015 10:49
@Nur777 все норм, значит все работает как должно
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:49
string(9) "App\Utype" 123 1440586142
Maxim
@Big-Shark
Aug 26 2015 10:49

@Nur777

$user = App\User::first();
dd($user->utype->toArray());

давай твой первоначальный вариант)

berpcor
@berpcor
Aug 26 2015 10:50
Почему 'required|integer|min:1|max:10000000' правила не пропускают число 0700007?
Срабатывает integer
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:51
@Big-Shark
array:4 [▼
  "id" => "1"
  "type_name" => "Developer"
  "created_at" => "-0001-11-30 00:00:00"
  "updated_at" => "2015-08-26 08:13:07"
]
Maxim
@Big-Shark
Aug 26 2015 10:51

@Nur777 а ты нас не обманываешь с тем как у тебя все в классах?

А теперь вернемся к этому сообщению)

Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:52
эм, да...
но, почему через браузер работает?
а через php artisan tinker - нет?
я просто через него же пытался, а он до сих пор простыни печатает, или его перезапускать надо ?
Maxim
@Big-Shark
Aug 26 2015 10:52
@Nur777 сейчас и там будет работать
@Nur777 до сих пор печатает не то?
Роман Сохарев
@greabock
Aug 26 2015 10:53
всем добра, коллеги =)
Maxim
@Big-Shark
Aug 26 2015 10:53
@greabock ну наконецто.
@berpcor а без ноля работает?
Роман Сохарев
@greabock
Aug 26 2015 10:54
@Big-Shark м? )
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:54
@Big-Shark @Big-Shark @Big-Shark заработало! :)
СПАСИБО ТЕБЕ ОГРОМНОЕ=)
Роман Сохарев
@greabock
Aug 26 2015 10:54
ххахаха
Ilnur Shaykhutdinov
@Nur777
Aug 26 2015 10:54
правда, я до сих пор не понял, в чём же была ошиба...
Maxim
@Big-Shark
Aug 26 2015 10:54
@greabock да я все ждал когда же добра пожелаю)
Роман Сохарев
@greabock
Aug 26 2015 10:55
это было как "тук-тук-тук, пенни, тук-тук-тук, пенни, тук-тук-тук, пенни"
Maxim
@Big-Shark
Aug 26 2015 10:55
@Nur777 ну связь возвращяла текст, так как dump вернул текст, и лара жаловалась что мол текст не класс, а в консоли он любит все перетерать, и вообщем кидал етбе тупо эксепшен
JhaoDa
@jhaoda
Aug 26 2015 10:56
@berpcor потому что если число начинается с 0 и следом нет x, то это восьмеричное число
Maxim
@Big-Shark
Aug 26 2015 10:56
@greabock может пэнни? а то пенни, это как "О я пенни нашел."
Роман Сохарев
@greabock
Aug 26 2015 10:57
@Big-Shark не суть )) http://www.youtube.com/watch?v=tKV4XYD3xK4
berpcor
@berpcor
Aug 26 2015 10:57
@Big-Shark Да, работает.
Maxim
@Big-Shark
Aug 26 2015 10:57
@jhaoda и что по твоему восьмеричное число не имеет права быть интеджером? )
berpcor
@berpcor
Aug 26 2015 10:58
Ага, я тоже в смятении по этому поводу...
Maxim
@Big-Shark
Aug 26 2015 10:58
@berpcor там скорее всего проверка не is_int, и я бы тоже посчитал эту строчку не числом, что логично
JhaoDa
@jhaoda
Aug 26 2015 10:58
@berpcor а валидация integer это filter_var($value, FILTER_VALIDATE_INT). Что бы прошло восьмеричное число, надо бы Тэйлору написать filter_var($value, FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_OCTAL)
Ну я так думаю...
Роман Сохарев
@greabock
Aug 26 2015 11:00
@jhaoda когда делаешь, столь искромётные замечания нужно добавлять "пам-пара-ру-рам" =)
Maxim
@Big-Shark
Aug 26 2015 11:00
https://3v4l.org/8pXgY немного странностей от пхп
Роман Сохарев
@greabock
Aug 26 2015 11:01
ну или "ба-да-бум-тсссс"
berpcor
@berpcor
Aug 26 2015 11:01
И какое правило использовать? Или исходники править?
Maxim
@Big-Shark
Aug 26 2015 11:02
@berpcor а ты реально ожидаешь число в таком формате?
Роман Сохарев
@greabock
Aug 26 2015 11:02
@jhaoda а я бы не стал, восьмиричное в валидацию на инт добавлять.
berpcor
@berpcor
Aug 26 2015 11:02
@Big-Shark Да, это лицевые счета. Раньше их формат был без ведущего нуля, а сейчас ноль добавился.
JhaoDa
@jhaoda
Aug 26 2015 11:03
@greabock я и не говорю, что надо
Maxim
@Big-Shark
Aug 26 2015 11:03
@jhaoda https://3v4l.org/73KXY интересно почему is_numeric говорит тру
@berpcor ну как вариант использовать is_numeric
Роман Сохарев
@greabock
Aug 26 2015 11:03

@jhaoda да ну говоришь же

надо бы Тэйлору написать

=)))

roman-deniskin
@roman-deniskin
Aug 26 2015 11:03
Всем привет. Столкнулся с проблемой обращения к контроллерам из форм в Laravel 5.1. По мануалам формы создаются как то так: {{ Form::open(array('action' => 'UsersController@postL')) }} и т.д. Но при добавлении формы таким образом у меня возникает ошибка Class 'Form' not found. Читал, что эти формы вроде как в 5 убрали. Вообщем я запутался. Не судите строго ибо я новичок в программировании)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:04
никогда в жизни не видел и не использовал filter_var
JhaoDa
@jhaoda
Aug 26 2015 11:04
echo (int) filter_var('0700007'); // 0
echo (int) filter_var('0700007', FILTER_VALIDATE_INT, FILTER_FLAG_ALLOW_OCTAL); // 229383
Maxim
@Big-Shark
Aug 26 2015 11:04
@SerafimArts ну для емейл очень удобен)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:04
вроде в пыхе 7 вырезали октал
Роман Сохарев
@greabock
Aug 26 2015 11:04
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:05
@Big-Shark preg_match('/.+@.+/iu', $mail);
Maxim
@Big-Shark
Aug 26 2015 11:05
@berpcor ну или тримим с левой стороны все 0
JhaoDa
@jhaoda
Aug 26 2015 11:05
@greabock ну это если надо пропускать восьмеричные, то надо написать
А если не надо, то и писать не надо
:)
roman-deniskin
@roman-deniskin
Aug 26 2015 11:06
@greabock его оттуда через composer скачивать?
Maxim
@Big-Shark
Aug 26 2015 11:06
@SerafimArts можно почти с тем же успезом просто проверить что там есть собачка)
@roman-deniskin да
Роман Сохарев
@greabock
Aug 26 2015 11:06
@roman-deniskin там есть ссылка на сайт. На сайте все по шагам описано.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:07
@Big-Shark ещё больше одного символа спереди и сзади
но да
можно просто проверить на наличие собачки
Maxim
@Big-Shark
Aug 26 2015 11:07
@SerafimArts часто к тебе приходят емейлы где собачка стоит первая, или последняя, или просто одна?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:07
@Big-Shark ещё больше одного символа спереди и сзади
до и после собачки
Роман Сохарев
@greabock
Aug 26 2015 11:08
@roman-deniskin ну а чтобы быть совсем крутым перцем, то нужно использовать другой пакет.
https://github.com/formers/former
roman-deniskin
@roman-deniskin
Aug 26 2015 11:08
@greabock а в чём между ними разница?
Роман Сохарев
@greabock
Aug 26 2015 11:09
Maxim
@Big-Shark
Aug 26 2015 11:09
@SerafimArts это я понял, я написал тебе разницу, что в твоем случае до и после собачики должны быть символы, а в моем нет, поэтому у меня вроде как просто @ будет валидна, и я решил узнать, как много к тебе приходило людей которые пытались зарегаться с символом собачки, но без символов до и после собачки)
JhaoDa
@jhaoda
Aug 26 2015 11:09
@Dualse зачем старые ссылки даешь?
roman-deniskin
@roman-deniskin
Aug 26 2015 11:09
@Dualse спасибо всё очень круто описано
Всем большое спасибо за ссылки) Думаю теперь разберусь)
Alexander
@Dualse
Aug 26 2015 11:10
@jhaoda Почему старые? И что означает старые в твоем контексте?
JhaoDa
@jhaoda
Aug 26 2015 11:10
@Dualse потому что 5.1 уже
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:11
@Big-Shark ты сам прекрасно знаешь ответ, не глупый, к чему такие риторические вопросы?
Alexander
@Dualse
Aug 26 2015 11:11
@jhaoda Не обратил внимание, что просили именно для 5.1 )
Извеняюсь)
Maxim
@Big-Shark
Aug 26 2015 11:11
@SerafimArts к тому наши валидации будут разные, но обе будут допусткать примерное одинаковое количество неверных адресов)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:12
@Big-Shark в моём случае только валидные
Maxim
@Big-Shark
Aug 26 2015 11:12
@Dualse 5.1 она как бы lts, и она последняя, так что версия по умолчанию эта 5.1 )
@SerafimArts зануда.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:12
noreply@google вполне валидная почта на домене первого уровня
так что гг вп
Maxim
@Big-Shark
Aug 26 2015 11:18
@SerafimArts у меня это тоже будет валидный емейл, но не валидные для тебя и валидные для меня будут text@, @text и @ , каков шанс что ктото с таким емейлом попробует зарегистрироваться?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 11:18
такие емеилы не валидны по стандарту жеж =)
так что их можно сразу отметать
berpcor
@berpcor
Aug 26 2015 11:38
@Big-Shark Спасибо.
Qweqwe1234
@Qweqwe1234
Aug 26 2015 11:59
Есть пара глупых вопросов которые уже долгое время не дают мне покоя(ответов нигде не нашел):
  1. Возможно ли использовать только поле timestamp('created_at') без updated_at? то есть оставить автоматическое неявную установку времени создания, при этом данные редактировать не планируется, а записей в таблице может быть много, поэтому лишнее поле заводить не хочется.
  2. Как создать определить сразу несколько связей при создании? То есть допустим есть у нас статьи, комментарии и пользователи, как при создании нового комментария связать его с пользователем и постом? Пока делаю по очереди
    Article::find($article_id)->comments()->save($comment);
    Auth::user()->comments()->save($comment);
    или есть идея просто при создании заносить их id, но это на мой взгляд ломает саму идею. Как все же правильно это делать?
JhaoDa
@jhaoda
Aug 26 2015 12:03
@Qweqwe1234 1. Нет 2. Никак
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:04
@jhaoda 1. жаль, 2. Как это никак?
apocello2008
@apocello2008
Aug 26 2015 12:06
Всем привет.. Объясните бекендщику, что за ошибка у джавы "callback was already called"
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:06
то есть так же по очереди? Или все же вместе со всеми другими полями при создании и id скормить?
JhaoDa
@jhaoda
Aug 26 2015 12:06
@Qweqwe1234 да, или по очереди, или сразу id записать
@Qweqwe1234 во втором случаем следует понимать, что кода меньше не получится, ибо тебе придется руками сохранять модели, что бы получить у них id
Шило на мыло
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:10
@jhaoda хм, при обработке post запроса с новым комментарием мы же можем при создании сразу указать id статьи, да и с id пользователя проблем не возникает
или еще забыл 3ий вариант - использование associate
JhaoDa
@jhaoda
Aug 26 2015 12:12
@Qweqwe1234 Но самые проблемы начнутся, когда ты захочешь сохранить в связь сразу 10 объектов :)
Цикл против одной строки
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:12
@jhaoda эм, одна строка?
JhaoDa
@jhaoda
Aug 26 2015 12:13
@Qweqwe1234 про saveMany() не знаешь?
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:15
@jhaoda читал, но в таком случаи или его 2 раза применять после создания 10 объектов, или мы в процессе создания сразу зададим id связанных данных
вот меня все это и мучает, а нафига тогда вообще нужен ->save()?
немного не так выразился
save я знаю для чего, но зачем его использовать что бы связи задать?
JhaoDa
@jhaoda
Aug 26 2015 12:16
А, ну да, каментам id статьи присваивается, а не наоборот...
Что бы id сами поставились как надо
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:22
@jhaoda получается нет смысла использовать, если я знаю id? тк в случаи save мы должны сначала получить объект по id(лишний запрос) и только после этого он занесет нужный id
NickPanda
@NickPanda
Aug 26 2015 12:26

Всем Мир!
Хотел узнать, насчет валидации
например есть

<select name=" company_id[] " multiple>
</select>

Далее делаю валидацию, например проверить существует ли данный id в базе

$this->validate($request,['company_id' => 'exists:states']);

Но в данном случае приходит массив company_id
Вот я и хотел узнать, как можно делать валидацию содержимого массива?
Заранее спасибо!

stranger-ru
@stranger-ru
Aug 26 2015 12:28
Скажите пжл, как можно подключить отдельный js скрипт в <footer></footer> из вьюхи? Т.е. например у меня в одной вьюхе выводится html блок кода с js (он выводится только на одной странице сайта) - мне этот js нужно подключить в подвале под подключением jqyery, причем желательно как-то связать зависимость данного js от jQuery, чтобы он подключился после него. Как это можно сделать?
NickPanda
@NickPanda
Aug 26 2015 12:29
@stranger-ru js скрипт всегда и на всех страницах в подвале?
stranger-ru
@stranger-ru
Aug 26 2015 12:29
нет, в том то и дело, что мне он не нужен на всех страницах, а только на одной.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 12:30
не забывай про кеш
Alexey
@Butochnikov
Aug 26 2015 12:30
@/all по результатам вчерашнего голосования за тему стрима, победил Hannes Van De Vreken с темой "Package development". В 17:00 по Москве ожидайте. Я еще напишу сюда, когда трансляция начнется.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 12:30
он и так один раз загрузится, не важно, везде подключается или один раз
stranger-ru
@stranger-ru
Aug 26 2015 12:31
@SerafimArts ну тем не менее, например, может пользователь и не зайдет на ту страницу, а только на главную зайдет, а js-скрипты придется грузить все (со всех возможных страниц)
tema-proximo
@tema-proximo
Aug 26 2015 12:32
@NickPanda $this->validate($request,['company_id.key' => 'exists:states']);
NickPanda
@NickPanda
Aug 26 2015 12:33
@tema-proximo company_id.key , key пишется обязательно (точнее именно key ) и не важно какие будут ключи в массиве? Верно?
Значит везде где надо проверить массив, пишем .key
Вот почему то данного варианта в доках нету
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 12:34
@stranger-ru зато наличие этого скрипта в результирующем файле может вообще не быть существенным, т.к. содержание может на 99% попадать под существующий зиповый словарь
tema-proximo
@tema-proximo
Aug 26 2015 12:34
@NickPanda key это и есть ключ массива
stranger-ru
@stranger-ru
Aug 26 2015 12:35
@SerafimArts ок, т.е лучшим способом просто в layout-e его прописать после подключения jQuery?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 12:35
лучшим способом использовать ассет пайплаин
как один из вариантов - уже существующий элексир
NickPanda
@NickPanda
Aug 26 2015 12:36
@tema-proximo а если мне не известен ключ массива?
или key это ключевое слово
Блин, пойду лучше проверю.....
Seba
@Siebov
Aug 26 2015 12:37

всем привет.
у меня есть форма с 3 мя полями(емайл/пароль/цсрф_тоукен)

есть контроллер, где я смотрю что в запросе отправленно

public function authenticate(Request $request)
    {   
        dd($request->input());
    }

в итоге, я в дампе не вижу пароль. Как к нему получить доступ через request? или как-нибудь ещё...

stranger-ru
@stranger-ru
Aug 26 2015 12:37

@SerafimArts

ассет пайплаин

это какое-то расширение?

tema-proximo
@tema-proximo
Aug 26 2015 12:37
@NickPanda тыж из реквеста массив получаешь, прокрути его через foreach и узнай ключи
NickPanda
@NickPanda
Aug 26 2015 12:39
@tema-proximo но я через reqques и другие данные получаю, не только этот массив
Seba
@Siebov
Aug 26 2015 12:41
НАРОД!!! как получить поле password?
Soprun Vladislav
@vlsoprun
Aug 26 2015 12:42
@Sebbba Где?
Seba
@Siebov
Aug 26 2015 12:42

у меня есть форма с 3 мя полями(емайл/пароль/цсрф_тоукен)
есть контроллер, где я смотрю что в запросе отправленно

public function authenticate(Request $request)
    {   
        dd($request->input());
    }

в итоге, я в дампе не вижу пароль. Как к нему получить доступ через request? или как-нибудь ещё...

Soprun Vladislav
@vlsoprun
Aug 26 2015 12:43
@Sebbba password не как не ограничивается ларой, так что смотри точно ли ты передал это поле
Seba
@Siebov
Aug 26 2015 12:43
дапм выводит только
array:2 [▼
  "email" => "ds@mail.com"
  "_token" => "E4yYbu5N7HnQqXIOT99NIumB6RZkycN49p3IB4qw"
]
@vlsoprun всё, нашёл косяк. спасибо
натолкнул.

@vlsoprun слушай, тогда сразу же ещё один вопрос.

Auth::attempt(['email' => $email, 'password' => $password])
вот этот метод, хэширует пароль самостоятельно перед передачей запроса?

NickPanda
@NickPanda
Aug 26 2015 12:47
@tema-proximo я прописал, одному полю name = company_idхэлунэъ,но он не срабатывает, даже если заранее известен ключ нужно пробегать?
tema-proximo
@tema-proximo
Aug 26 2015 12:48
@NickPanda
```
@NickPanda вот тебе удочка
        foreach($this->request->get('number') as $key => $value) {
            if($value) {
                $rules['number.' . $key] = 'integer';
            }
        }
NickPanda
@NickPanda
Aug 26 2015 12:52
@tema-proximo я правильно понимаю, что мы этим самым лишь динамически дрописываем правила валидации и усе?
и да твой пример или откуда то взял?
tema-proximo
@tema-proximo
Aug 26 2015 12:55
@NickPanda да, это я и хотел тебе сказать, пример мой
Qweqwe1234
@Qweqwe1234
Aug 26 2015 12:58
еще один вопрос, как узнать все активные сессии принадлежащих одному человеку(одному ip)?
Alexey
@Butochnikov
Aug 26 2015 13:02
@Qweqwe1234 если ты их не сохранял отдельно, то ни как
Soprun Vladislav
@vlsoprun
Aug 26 2015 13:03
@Sebbba да сам, ты ему просто передаешь в чистом виде, а дальше он сам все делает
Seba
@Siebov
Aug 26 2015 13:05
ок. НО значит мне в таблицу(на стадии тестирования) нужно положить пароль в правильно захешированном виде.
какую функцию использует lara ?
Qweqwe1234
@Qweqwe1234
Aug 26 2015 13:07
@Butochnikov Пока нигде не сохраняются, думаю в них хранить некие динамические счетчики на период сессии, но при этом хочу обрабатывать и проверять все счетчики конкретного пользователя, похоже проще будет сделать отдельной таблицей реализовать без сессий и в качестве идентификации пользователей использовать ip адрес, или есть другие варианты проверки что пользователь не сидит через 10 браузеров с разными куками одновременно?
Soprun Vladislav
@vlsoprun
Aug 26 2015 13:07
@Sebbba ну да, что то типа
$account = Account::create([
    'first_name' => 'Admin',
    'last_name' => '',
    'email' => 'admin@admin.com',
    'password' => bcrypt('admin@admin.com')
]);
Seba
@Siebov
Aug 26 2015 13:08
точняк! bcypt
Qweqwe1234
@Qweqwe1234
Aug 26 2015 13:09
все, уже совсем голова кипит, само собой сохраняются по умолчанию в качестве драйвера стоит файл
Можно ли как-то одному ip адресу назначит только одну сессию? и не важно в каких браузерах он будет открывать страницы и с какими куками, сессия будет все равно одна. Такое вообще возможно?
Alexey
@Butochnikov
Aug 26 2015 13:13
@Qweqwe1234 ты же знаешь, что если захочется обмануть, то получится. используй "неубиваемые" куки, хотя от разных браузеров это не спасет.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:14
*everycookie
если не путаю
Qweqwe1234
@Qweqwe1234
Aug 26 2015 13:15
@Butochnikov эт понятно, кто захочет найдет как, ни одна система не является безопасной. Всегда можно взять и заюзать проксю
вопрос в том что на уровне одного ip возможно использовать одну сессию?
@SerafimArts evercookie если точнее) спасибо, почитаю)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:18
ну да, верно, просто я не могу помнить всего на свете =)
Qweqwe1234
@Qweqwe1234
Aug 26 2015 13:23
только одно маленькое но: у меня пример на оффсайте эверкуки не работает...
NickPanda
@NickPanda
Aug 26 2015 13:27
Я тут может не до конца в теме, но на Laracon Rus будет Тейлор?
Или что из себя о будет представлять?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:28
для начала расскажи о том, что за Laracon Rus =)
Alexey
@Butochnikov
Aug 26 2015 13:29
@NickPanda будет ларкон, будет и Тейлор )
JhaoDa
@jhaoda
Aug 26 2015 13:30
Я тут как-то спрашивал про склад и on hold / on hand. В одном проекте нашел проверку на достаточное кол-во штук для заказа:
$quantity <= ($stockable->getOnHand() - $stockable->getOnHold());
Получается, что on hold (резерв) входит в on hand (всего на складе)?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:31
кстати, недавно обнаружил что в пыхе не пашут условия вида $a < 42 < $b
NickPanda
@NickPanda
Aug 26 2015 13:31
@SerafimArts @Butochnikov я что опечатался?
ведь есть к примеру Laracon EU 2015
и читал что то про Laracon Rus
JhaoDa
@jhaoda
Aug 26 2015 13:31
@NickPanda ты читал, что есть мысль его устроить
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:31
скажите, я совсем наркоман что пишу такие условия?
JhaoDa
@jhaoda
Aug 26 2015 13:31
Дальше мыслей пока ничего не продвинулось
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:32
или это нормально, просто ограниченность языка
NickPanda
@NickPanda
Aug 26 2015 13:32
@jhaoda не я понимал, что это на грани мысли, но все же
и блин почему Россию обижают(((
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:32
@NickPanda проспонсируй и будет тебе ларакон
NickPanda
@NickPanda
Aug 26 2015 13:32
А сам Тейлор он у нас кем будет по нации то?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:34
Артизанянин
из города Ларабург
америкос он
Alexey
@Butochnikov
Aug 26 2015 13:35
@SerafimArts :+1:
NickPanda
@NickPanda
Aug 26 2015 13:36
@SerafimArts ясно...еще один Джобс или плохое сравнение?)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:36
наоборот
Qweqwe1234
@Qweqwe1234
Aug 26 2015 13:36
@SerafimArts уже давно не работают эти куки =(
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:36
джобс диктатор и тырил из окружающих людей знания и воплощал их в жизнь
тейлор диктатор, но никого не подпускает к своим поделиям, кроме своего ограниченного круга лиц
и в 99% игнорирует предложения по улучшению
NickPanda
@NickPanda
Aug 26 2015 13:39
Но при этом ларавел имеет успех и если бы ларавел был ужасен не было бы ни чата ни прочего
roman-deniskin
@roman-deniskin
Aug 26 2015 13:39
Может и нубский вопрос, но в чём выгода Тейлору поддерживать фреймворк? Он опенсоурсный и лично я не вижу возможностей для его монетизации, кроме разве что продажи каких то убер крутых пакетов для Ларавеля, да и та идея под сомнением.
JhaoDa
@jhaoda
Aug 26 2015 13:40
Юи тоже имеет успех, хотя он ужасен:)
@roman-deniskin сервисы сопутствующие
Oleg
@Malezha
Aug 26 2015 13:40
Да и Ларакон тоже приносит свою прибыль.
roman-deniskin
@roman-deniskin
Aug 26 2015 13:40
@jhaoda можете привести примеры. Хочу погуглить
Роман Сохарев
@greabock
Aug 26 2015 13:40
@jhaoda нигде кроме su он успеха не имеет. По понятным причинам
JhaoDa
@jhaoda
Aug 26 2015 13:41
@roman-deniskin http://laravel.com/docs/5.1, четвёртый раздел в меню
roman-deniskin
@roman-deniskin
Aug 26 2015 13:42
@jhaoda спасибо.
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:42
This message was deleted
Oleg
@Malezha
Aug 26 2015 13:42
Ну и наверняка не так просто появился в доках Stripe
JhaoDa
@jhaoda
Aug 26 2015 13:43
Очень может быть
Oleg
@Malezha
Aug 26 2015 13:43
Все таки достаточно специфическая штучка для фреймворка.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:43
@Malezha хде?
нашёл, да
спасибо =)
JhaoDa
@jhaoda
Aug 26 2015 13:44
@Malezha но это же не часть фреймфорка, все же
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:44
Вопросик, как компзер знает, что "require-dev» нужен или нет, где он смотрит локалка или продакшн это?
JhaoDa
@jhaoda
Aug 26 2015 13:44
Я вот завтра возьму и напишу про интеграцию с Робокассой, но мне Робокасса не платила
Vladimir
@VSKut
Aug 26 2015 13:44
Подскажите. Передаю массив в DB::table('user_types')->insert($insert); - сидит только первую, хотя раньше сидило всё без проблем. Проблема только с этой таблицей - в остальные сидит данные без проблем, таблица не менялась. При чём сидит первую строку только после миграции, если очистить таблицу и попытаться сделать seed, то ничего в неё не попадёт :/ В логах ничего нету
JhaoDa
@jhaoda
Aug 26 2015 13:44
Кстати... интересная мысль:)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:45
для рекламы
а вообще отличная идея
*статья
я всячески одобряю
Oleg
@Malezha
Aug 26 2015 13:45
@jhaoda конечно, подключается отдельным пакетом, но в тоже время куда более нужный Html пакет вынесли вообще на отдельный домен.
NickPanda
@NickPanda
Aug 26 2015 13:45
@jhaoda :-)
@Malezha HTML пакет , это вообще подерживается другими людьми, а не Тейлором)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 13:46
@NickPanda +
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:46
@VSKut DB::table('user_types')->insert($insert); - это гадание на кофейной гуще
Oleg
@Malezha
Aug 26 2015 13:47
Да, но в 4 версии он был вообще часть фреймворка =)
Vladimir
@VSKut
Aug 26 2015 13:47
@SergeyMiracle в плане просто файл с сидами. Команда в таблицу должна загонять массив с данными, но работает как-то мягко говоря странно.
Роман Сохарев
@greabock
Aug 26 2015 13:48
@SergeyMiracle require-dev тянется всегда, за исключением тех случаев, когда прописано --no-dev
но тянется только для рутового проекта - не для зависимостей
NickPanda
@NickPanda
Aug 26 2015 13:48
@Malezha @SerafimArts
Хотя так как я сильно не юзал 4 версию, где был этот пакет включен, то я не знаю его плюсов и минусов
А вот SSH пакет, это норм тема)
Vladimir
@VSKut
Aug 26 2015 13:48
Хотя аналогичная команда в другую таблицу загоняет всё без вопросов и проблем - 100к, так 100к.
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:48
@VSKut ну не понятно по этой строке в чем может быть проблема :smile:
@VSKut может в таблице что-то, длинна поля или еще что
@SergeyMiracle так работало всё ок раньше ))
таблицу не менял
тупо заметил, что пропали типы юзеров
и остался 1
roman-deniskin
@roman-deniskin
Aug 26 2015 13:52
Такой вопрос. Ранее сегодня я поднимал тему создания форм в Laravel 5.1, мне скинули 2 интересных решения данной проблемы.
1) Стандартный пакет для создания форм как в Laravel 4 http://laravelcollective.com/docs/5.1/html - с ним всё понятно
2) Создание форм с помощью пакета Former: https://github.com/formers/former
Не понимаю, как подключить Former к проекту? Какую строку нужно вписывать в composer.json для Ларавель 5.1?
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:52
@VSKut это DB::table('user_types')->delete(); что делает?
Роман Сохарев
@greabock
Aug 26 2015 13:53
@roman-deniskin "anahkiasen/former": "4.0.*@dev",
roman-deniskin
@roman-deniskin
Aug 26 2015 13:53
@greabock спасибо
Vladimir
@VSKut
Aug 26 2015 13:53
@SergeyMiracle сносит все записи из таблицы
NickPanda
@NickPanda
Aug 26 2015 13:53

Кстати, кто отвечает за док , я знаю что могу отправить коммит или еще что, но кто то ту умеет делать массовую замену
Пути задаются относительно директории resources/css.
Хотя должно быть Пути задаются относительно директории resources/assets/css. и там еще ряд таких вещей

http://laravel.su/docs/5.0/elixir

Vladimir
@VSKut
Aug 26 2015 13:55
@SergeyMiracle думал может что-то где-то закэшировалось на каком-то уровне или что-то в этом роде, но своих знаний не хватает в данной ситуации
Роман Сохарев
@greabock
Aug 26 2015 13:55
@NickPanda старшой по докам в отпуске ныче
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:55
@VSKut ты навнрно truncate() хотел
@VSKut сомневаюсь что кеш
NickPanda
@NickPanda
Aug 26 2015 13:55
@greabock окей(
Ну главное что сообщил)
Vladimir
@VSKut
Aug 26 2015 13:57
@SergeyMiracle да не суть, как чистить таблицу - оно даже без этой строки ничего тупо не insert :/
SergeyMiracle
@SergeyMiracle
Aug 26 2015 13:57
@VSKut попробуй ddшить массив, результат, может то покажет
Vladimir
@VSKut
Aug 26 2015 14:02
@SergeyMiracle это лол. phpstorm тупил оказывается, рестарт помог
спасибо за наводку с dd
SergeyMiracle
@SergeyMiracle
Aug 26 2015 14:02
:)
@VSKut а какая версия?
Vladimir
@VSKut
Aug 26 2015 14:03
@SergeyMiracle 9.0, от 7 июля
SergeyMiracle
@SergeyMiracle
Aug 26 2015 14:05
там 3 апдейта или 2 вышло не так давно
вообще вроде норм работает
Vladimir
@VSKut
Aug 26 2015 14:07
ну так у самого впервые - поэтому и не понимал в чём дело :smile:, а так всегда всё ок
Alexey
@Butochnikov
Aug 26 2015 14:10
@/all трансляция началась, но смотреть тут http://meerkatapp.co/akireikin на нашем сайте не работает их встроенный плеер, почему-то
jongleb
@jongleb
Aug 26 2015 14:11
А как на весь экран
Alexey
@Butochnikov
Aug 26 2015 14:13
ни как )
@/all и на нашем теперь заработала )) http://laracon.laravel.su/#stream
SergeyMiracle
@SergeyMiracle
Aug 26 2015 14:18
блин видео тупит :(
Screamster
@Screamster
Aug 26 2015 14:30
$service->title_ru = $input['title_ru'];
        $service->preview_ru = $input['preview_ru'];
        $service->content_ru = $input['content_ru'];
        $service->seo_title_ru = $input['seo_title_ru'] ? $input['seo_title_ru'] : $input['title_ru'];
        $service->seo_description_ru = $input['seo_description_ru'];

        $service->title_ua = $input['title_ua'];
        $service->preview_ua = $input['preview_ua'];
        $service->content_ua = $input['content_ua'];
        $service->seo_title_ua = $input['seo_title_ua'] ? $input['seo_title_ua'] : $input['title_ua'];
        $service->seo_description_ua = $input['seo_description_ua'];
ребят, как вот такое можно избежать? меняются только индексы языков, которые берутся из конфига
SergeyMiracle
@SergeyMiracle
Aug 26 2015 14:33
@Screamster мутаторы может
Screamster
@Screamster
Aug 26 2015 14:34
а нет аналога фунции from_array у елоквента? как в фуеле http://fuelphp.com/api/classes/Orm.Model.html#from_array
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 14:34
new SomeModel($array)
это раз
с SomeModel::unguard() естественно
и два $instance->fill($array);
если не путаю, ща уточню
да, верно, ->fill
Screamster
@Screamster
Aug 26 2015 14:37
@SerafimArts спасибо большое :)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 14:37
а ещё есть ->forceFill
это если надо заполнить в обход защиты
ну т.е. в обход guard
Screamster
@Screamster
Aug 26 2015 14:38
блин, круть, а то я уже расстраиваться начал
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 14:38
а ещё есть SomeModel::newInstance($array, $exists = false)
Screamster
@Screamster
Aug 26 2015 14:38
думаю, как так-то
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 14:38
ещё newFromBuilder
вроде всё, что могу припомнить на заполнение из массива
)
Screamster
@Screamster
Aug 26 2015 14:38
спасиб большое
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 14:39
ну и всякие create, форскреейт, фёрсторкреейт, тоже из массива данные получают
sitdirek
@sitdirek
Aug 26 2015 14:42
Добрый вечер.
Не удается настроить задачи по cron в соответствии с документацией.
* * * * * php /path/to/artisan shedule:run 1>> /dev/null 2>&1
 protected function schedule(Schedule $schedule)
    {
        $schedule->command('inspire')
                 ->hourly();

        $shedule->call(function(){
            mail('mail@mail.ru', 'laravel cron', 'testing');
        })->everyMinute();        

    }
Подобное по cron работает.
php /var/www/site/mail.php
jongleb
@jongleb
Aug 26 2015 15:34
Ребзи опять что то непонятки у меня
view()->composer('layouts.sidebar', 'App\Http\ViewComposers\SidebarComposer');
Там у меня просто аватарку он возвращает пользователя текущего
делаю в этой вьюхе
dump($avatar)
projct1
@projct1
Aug 26 2015 15:35
как добавить все поля от рилейшена, если пишу в модели $this->with('content') ?
jongleb
@jongleb
Aug 26 2015 15:35
и что то пишет необъявленная переменная
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:36
This message was deleted
хотя не
в SidebarComposer точно $view->with('a', 'b') Прописано?
jongleb
@jongleb
Aug 26 2015 15:37
public function compose(View $view)
{
$view->with('avatar', $this->user->avatar);
}
В классе Сайдбаркомпозера
Мэйджикал или я дурак7
Хотя нет скорее второе, на магию в js ссылаться можно тока
тут такого нет
projct1
@projct1
Aug 26 2015 15:39
парни как сделать чтобы все атрибуты рилейшена добавились сразу ко всем аттрибутам основной модели? http://joxi.ru/DrlOZgRFdDJ1AP
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:40
@jongleb всё верно
тогда один вариант - метод view composer просто не вызывается
jongleb
@jongleb
Aug 26 2015 15:40
Хм я вот что думаю я эту папку руками создавал
мб composer update
сделать
JhaoDa
@jhaoda
Aug 26 2015 15:41
@rorc никак
Что у вас за страсть смешивать то, что смешивать не надо
projct1
@projct1
Aug 26 2015 15:43
@jhaoda ну а как тогда мне получить массив через lists('name', 'id'); если name лежит в рилейшене?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:44
@jongleb у тебя чтоль не psr4 автолоад? что не грузится ничего и надо генерить классмапу
JhaoDa
@jhaoda
Aug 26 2015 15:44
@rorc никак
projct1
@projct1
Aug 26 2015 15:44

@jhaoda

$this->with('content')->lists('name', 'id')

конечно же не пашет

jongleb
@jongleb
Aug 26 2015 15:44
@SerafimArts нет нет там все как надо
projct1
@projct1
Aug 26 2015 15:44
@jhaoda неужели тока через сырой join =(
jongleb
@jongleb
Aug 26 2015 15:45
@SerafimArts Там постораться надо чтобы напортачить
там из коробки все путева
projct1
@projct1
Aug 26 2015 15:46

@jhaoda

$this->select('shop_category.id', 'contents.name')->join('contents', 'shop_category.id', '=', 'contents.content_id')->lists('name', 'id');

жесть, неудобно

jongleb
@jongleb
Aug 26 2015 15:46
Да блин я уже хочу тимлиду показать краосту в сайдбаре скорей
а он андифинед да андифинед
А он точно поддерживает пути с папками
'layouts.sidebar'
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:51
да
а ещё звёздочки
jongleb
@jongleb
Aug 26 2015 15:52
@SerafimArts ну что еще может инклуд нельзя с композером юзать @include('layouts.sidebar')
чтот догадок не осталось
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:52
нельзя
в инклуды данные из композера не передаются
если что
если я понял твой вопрос верно
jongleb
@jongleb
Aug 26 2015 15:54
Хм
тогда как бы в родитель кидать?
вернее не родитель
а туда куда инклудится
Ц нет кажется даже и без того нагруженный main не видит аватар
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:57
прописать в композере
jongleb
@jongleb
Aug 26 2015 15:57
Стоп мы точно говорим о инклудах в вьюхи
и о композере как о вью композерах
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:57
View::composer(['view1', 'view2', 'layout.sidebar'], ComposerClass::class);
ну или вариант 2 с секциями
на уроне блейда
jongleb
@jongleb
Aug 26 2015 15:59
Хмм вот как. сейчас пробну вот вариант где без ковычек как ты написал
тут
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 15:59
@section('some')
  asd
@show
@include('layout.sidebar')

////// layout/sidebar.blade.php

@section('some')
  new value (переписываем секцию в родителе)
  {{$dataFromComposer}}
@stop
jongleb
@jongleb
Aug 26 2015 15:59
просто второй параметр , который путь он в ковычках
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:00
там не путь
там класс (имя его)
во втором аргументе
Maxim
@Big-Shark
Aug 26 2015 16:01
Я ослеп, на что жалуются пхпюнит?
-'DB::table('table')->andWhereIn('a', ['a', 'b'])->get()'
+'DB::table('table')->andwhereIn('a', ['a', 'b'])->get()'
Тьфу ты, просто W с маленькой буквы
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:02
+ - это проходит?
прости за мой избалованный штормовым интерфейсом юнита вопрос =)
Maxim
@Big-Shark
Aug 26 2015 16:02
'-' то что я выдал, а + что я хотел
@SerafimArts я вот тоже юзаю шторм, но даже не вкорси что там с тестами)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:03
эм, у тебя assert для строк что ль? о_0 где строка - это похапэ код
Maxim
@Big-Shark
Aug 26 2015 16:04
@SerafimArts да, так точно)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:04

я вот тоже юзаю шторм, но даже не вкорси что там с тестами)

http://cs623923.vk.me/v623923981/46894/VMOiT_u5fww.jpg

Maxim
@Big-Shark
Aug 26 2015 16:04
@SerafimArts ты мне скажи, вот аткое в ларе работает 'DB::table('table')->andWhereIn('a', ['a', 'b'])->get()' ?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:04
без and
and по-умолчанию подразумевается
This message was deleted
стоп
а что за безумный массив у тебя там? о_0
как это понимать?
Maxim
@Big-Shark
Aug 26 2015 16:06
@SerafimArts
        $result = (new BuilderClass('SELECT *  FROM `table` WHERE `a` IN (\'a\', \'b\')'))->convert();
        $this->assertEquals($result, 'DB::table(\'table\')->andWhereIn(\'a\', [\'a\', \'b\'])->get()');
JhaoDa
@jhaoda
Aug 26 2015 16:06
@SerafimArts чем тебе массив не угодил?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:06
да, всё, я слоу
=)
Maxim
@Big-Shark
Aug 26 2015 16:06
@SerafimArts вопрос, будет ли работать andWhereIn и orWhereIn
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:07
and - хз
or - да
JhaoDa
@jhaoda
Aug 26 2015 16:07
@Big-Shark тебе же говорят, нету методов с приставкой and
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:07
DB::table('table')->whereIn('a', ['a', 'b'])->get();
DB::table('table')->orWhereIn('a', ['a', 'b'])->get();
Maxim
@Big-Shark
Aug 26 2015 16:14
@jhaoda Спасибо, я думал там магия, и анд тоже будет работать
projct1
@projct1
Aug 26 2015 16:15

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

{!! Form::text('content[name]', null, ['class' => 'form-control']) !!}

так не работает, надо писать вместо null $model->content->name

jongleb
@jongleb
Aug 26 2015 16:15
```
projct1
@projct1
Aug 26 2015 16:15
должен как-то автоматом подставлять...
JhaoDa
@jhaoda
Aug 26 2015 16:16
@rorc кто и кому должен?
jongleb
@jongleb
Aug 26 2015 16:16
Уже сократил тот класс все повырезал
class SidebarComposer
{
    private $user;

    public function __construct()
    {
        $this->user=Auth::user();
    }

    public function compose(View $view)
    {
        $view->with('user', $this->user);
    }
```и этот
class ComposerServiceProvider extends ServiceProvider {

    /**
     * Register bindings in the container.
     *
     * @return void
     */
    public function boot()
    {
        view()->composer('layouts.dashboard',SidebarComposer::class);
    }

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        //
    }

}
JhaoDa
@jhaoda
Aug 26 2015 16:16
Ребята, я не понимаю, маркдаун такой сложный?
jongleb
@jongleb
Aug 26 2015 16:16
и все равно не работает
seoperin
@seoperin
Aug 26 2015 16:17
Привет всем
JhaoDa
@jhaoda
Aug 26 2015 16:17
Чо у вас вечно шматки какие-то вместо нормальной разметки
seoperin
@seoperin
Aug 26 2015 16:17
Помогите составить правильно запрос
projct1
@projct1
Aug 26 2015 16:17
@jhaoda ну как он заполняет иначе...
seoperin
@seoperin
Aug 26 2015 16:17
```
DB::select("SELECT ROUND(AVG(value),2) avgValue, COUNT(price_id) push_cnt FROM prices_push WHERE price_id = ". $pricePush->price_id )
JhaoDa
@jhaoda
Aug 26 2015 16:17
Да вы издеваетесь!
romach3
@romach3
Aug 26 2015 16:17
:smile:
jongleb
@jongleb
Aug 26 2015 16:18
@SerafimArts Обрати внимание пожалуйста еще разок
@SerafimArts Мб все такие что то не то
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:19
@jhaoda да что``` ты _придираешься*?
GamePostOFF
@GamePostOFF
Aug 26 2015 16:23
Добрый вечер, почему обработка исключений не срабатывает? failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
            try
            {
                $a = file_get_contents("http://hogrses.url.ru/get_info?pid=10959");
            }
            catch(Exception $ex)
            {
                try
                {
                    $a = file_get_contents("http://horses.url2.ru/get_info?pid=10959");
                }
                catch(Exception $ex)
                {
                    $a = file_get_contents("http://url1.ru/get_info?pid=10959");
                }
            }
Vladimir
@VSKut
Aug 26 2015 16:23
В laravel/blade есть какой-то функционал для отображения переводов строк?
Vladimir
@VSKut
Aug 26 2015 16:24
@jhaoda в плане EOL, а не локализация)) /r/n
JhaoDa
@jhaoda
Aug 26 2015 16:25
Чо ж вы доку-то не читаете... там даже поиск есть
@VSKut м-да... ну и вопросец
А зачем такой функционал, очень мне интересно?
Maxim
@Big-Shark
Aug 26 2015 16:26
@GamePostOFF может потому что файл гет контент не кидает исколючение?
Vladimir
@VSKut
Aug 26 2015 16:26
@jhaoda принял от юзера текст через textarea, нужно вывести вместе с переводами строк заменёнными на <br />. Собственно и спрашиваю - есть уже что-то готовое или делать велосипед?
JhaoDa
@jhaoda
Aug 26 2015 16:27
@VSKut т.е. примитивный str_replace или регулярка — это уже велосипед?
И можно вспомнить про php-функцию nl2br()
GamePostOFF
@GamePostOFF
Aug 26 2015 16:28
@Big-Shark Чем можно заменить? Нужно получить код со страницы.
Vladimir
@VSKut
Aug 26 2015 16:29
@jhaoda ну, допустим, в blade вместо htmlentities используется {{ }}, нахожусь в поисках чего-то такого, если существует
если нет, то буду сам писать
jongleb
@jongleb
Aug 26 2015 16:29
@SerafimArts ПОЖАЛУЙСТА ТОКА НЕ ИГНОРЬ Я КАЖЕТСЯ ПОНЯЛ
@SerafimArts Нужно зарегистрировать
JhaoDa
@jhaoda
Aug 26 2015 16:29
@VSKut я же написал, что можно использовать
jongleb
@jongleb
Aug 26 2015 16:30
в сервис провайдере
да
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:30
нужно вызвать
а где - уже не важно
Vladimir
@VSKut
Aug 26 2015 16:30
@jhaoda в плане функций я понял - искал готовую реализацию. в общем забей - спасибо, что напомнил про существование nl2br
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:31

@SerafimArts ПОЖАЛУЙСТА ТОКА НЕ ИГНОРЬ Я КАЖЕТСЯ ПОНЯЛ

@jongleb

НАМ НУЖНО БОЛЬШЕ КАПСА!!!!

JhaoDa
@jhaoda
Aug 26 2015 16:31
БОЛЬШЕ КАПСА ДЛЯ БОГА КАПСА!!!111рас
jongleb
@jongleb
Aug 26 2015 16:31
:smile:
ну осенило ну бывает жи
JhaoDa
@jhaoda
Aug 26 2015 16:31
@SerafimArts ты грань добра-то не переходи
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:35

грань добра


грань зла

всё, теперь я на стороне зла
JhaoDa
@jhaoda
Aug 26 2015 16:35
Флудер ты гадский
jongleb
@jongleb
Aug 26 2015 16:35
Не нада так
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:35
почему сразу гадский?
JhaoDa
@jhaoda
Aug 26 2015 16:36
@SerafimArts ты и был на стороне зла, потому что пятерку не любишь
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:36
ой да ладно тебе :3
Maxim
@Big-Shark
Aug 26 2015 16:37
@GamePostOFF ну как минимум курл
jongleb
@jongleb
Aug 26 2015 16:40
Внимание правильнй ответ: 'App\Providers\ComposerServiceProvider',
Вот это положить в конфиг
изначально там нет этого
'App\Providers\AppServiceProvider',
'App\Providers\BusServiceProvider',
'App\Providers\ConfigServiceProvider',
'App\Providers\EventServiceProvider',
'App\Providers\RouteServiceProvider',
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:41
а с чего там оно должно быть?
jongleb
@jongleb
Aug 26 2015 16:41
Добавили все как назло кроме
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:41
если ты сам его создал
и не подключил
jongleb
@jongleb
Aug 26 2015 16:41
ЛОЛ точно
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:41
я тебя спрашивал уже на счёт вызывается ли View::composer или нет
jongleb
@jongleb
Aug 26 2015 16:41
я его 2 недели назад создал
кароче
а сегодня опомнился
я думал он не мною созданный
GamePostOFF
@GamePostOFF
Aug 26 2015 16:42
@Big-Shark оно теперь выводит мне 404 ошибку текстом :D
            try
            {
                if( $curl = curl_init() ) {
                    curl_setopt($curl, CURLOPT_URL, 'http://horgses.url2.ru/get_info?pid=10959');
                    curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                    $out = curl_exec($curl);
                    echo $out;
                    curl_close($curl);
                }
            }
            catch(Exception $ex)
            {
                try
                {
                    if( $curl = curl_init() ) {
                        curl_setopt($curl, CURLOPT_URL, 'http://hogrses.url1.ru/get_info?pid=10959');
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                        $out = curl_exec($curl);
                        echo $out;
                        curl_close($curl);
                    }
                }
                catch(Exception $ex)
                {
                    if( $curl = curl_init() ) {
                        curl_setopt($curl, CURLOPT_URL, 'http://url.ru/get_info?pid=10959');
                        curl_setopt($curl, CURLOPT_RETURNTRANSFER,true);
                        $out = curl_exec($curl);
                        echo $out;
                        curl_close($curl);
                    }
                }
            }
Maxim
@Big-Shark
Aug 26 2015 16:43
@GamePostOFF я тебя должен учить программировать?
GamePostOFF
@GamePostOFF
Aug 26 2015 16:43
@Big-Shark нет :(
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 16:43
@jongleb а вообще яб не занимался таким и запихнул вызовы в AppServiceProvider, ибо плодить сущности для одной строки кода не всегда хорошо
jongleb
@jongleb
Aug 26 2015 16:44
@SerafimArts У меня там наследников валидатора много очень
Спасибо кстати за помощь1
@SerafimArts Сервис провайдеры каким паттерном проектирования представлены?
Maxim
@Big-Shark
Aug 26 2015 16:45
@GamePostOFF ну так вот иди и прочитай про курл, или про другие либы которые можно использовать для запросов, тот же газл допустим, потом посмотри как они возвращяют отрицательный результат, и уже перепиши свой код
jongleb
@jongleb
Aug 26 2015 17:01
А это нормально что контроллеров у меня уже 23?
Каждой сущность по контроллеру
и что то разрослось ваще
Maxim
@Big-Shark
Aug 26 2015 17:02
@jongleb а че нет)
jongleb
@jongleb
Aug 26 2015 17:03
Мне нравится просто как в ангуляре, там предполагается делать (сейчас все скажут фу лох мыслишь папками) делать папочки под кажду. сущность то есть Some ./someController ./someModel ./SomeView
типа такого
Где то читал перевод
это как склдывать носки к носкам в полку для одежды
Полка для одежды это папка а носки к носкам это типа контроллер модель и вьюха в ней
ну кароче такая кухня
НУ ВЫ ПОНЯЛИ КАРОЧЕ
YAAP
@yaapis
Aug 26 2015 17:05
ну мы поняли, короче ))
но большинству такой подход кажется гнилухой )))
Artemy
@lartie
Aug 26 2015 17:06
Привет все. Кто нибудь знает какие нибудь библиотеки для сбора статистики по параметрам например? Конкретно нужно брать их бд данные и считать сколько в какую минуту записей имеется. Есть что нибудь на примете?
YAAP
@yaapis
Aug 26 2015 17:06
это удобно, если тебе надо модуль копировать с одной системы в другую, например
jongleb
@jongleb
Aug 26 2015 17:07
А понял тебя
Maxim
@Big-Shark
Aug 26 2015 17:07
@jongleb подход "гнилуха"
@artemiydeveloper mysql?
jongleb
@jongleb
Aug 26 2015 17:08
Подход "Не для Ларавел"
Paul Klementyev
@klermonte
Aug 26 2015 17:08
@artemiydeveloper collectD плюс grafit/grafana
Maxim
@Big-Shark
Aug 26 2015 17:08
@jongleb ты можешь почитать бест практис в симфони, как там описано что такое бандл и для чего он нужен
Artemy
@lartie
Aug 26 2015 17:08
@klermonte спасибо, сейчас посмотрю.
Maxim
@Big-Shark
Aug 26 2015 17:09
@jongleb если в кратце, если ты можешь скопировать эту папку в другой проект, и там все заработает, то выделяй в бандл, если нет, клади все в апп
@jongleb в ларе ты просто делаешь отдельный пакет если у тебя это отдельный модуль грубо говоря
stranger-ru
@stranger-ru
Aug 26 2015 17:10
Такой вопрос: {!! $pager->render() !!} создает <ul class='pagination'></ul>
Как перебить стили Bootstrap-a, кроме как из стилей !important и отключения самого Bootstrap-a - другими словами, возможно ли назначить свой класс CSS пагинатору из PHP?
Maxim
@Big-Shark
Aug 26 2015 17:10
@jongleb у нас на симфони 1 было штук 20-30 модулей, в каждом по 1 контролеру, по паре вью, своф конфиг и прочее, так я не знаю какой слабоумный это сделал.
Paul Klementyev
@klermonte
Aug 26 2015 17:10
@stranger-ru вторым параметром передай имя вью
stranger-ru
@stranger-ru
Aug 26 2015 17:11
@klermonte ок, спасибо, не знал, что там можно свою вьюшку назначить через параметры
jongleb
@jongleb
Aug 26 2015 17:11
@Big-Shark Мгм да тогда понятно,спасибо за разъяснения!
romach3
@romach3
Aug 26 2015 17:11
@Big-Shark а в чем косяк то? Есть у тебя модуль и все что к нему относится лежит там, конфигом я так понимаю это связывалось с остальным аппом. Что не так?
Artemy
@lartie
Aug 26 2015 17:12
@Big-Shark да. mysql
Maxim
@Big-Shark
Aug 26 2015 17:13
@romach3 ну страктура папок просто жесть, модули дергают вью из других модулей, в конфиги прописали что надо кэшировать страницу котору. отдает этот модуль, а тебе потом говорят, "У нас на сайте часть страниц странно отображается", и поди разберись что там случилос, оказывается просто кэш
@romach3 то есть ты по конфигам не можешь понять как работает весь проэкт
@romach3 зачем в каждом модуле папка контролер и в ней всегда 1 файл, тоже не понятно
@artemiydeveloper нет, это был ответ на твой вопрос)
romach3
@romach3
Aug 26 2015 17:14
@Big-Shark дык тогда проблема не в структуре папок, а в кривых руках автора )
Maxim
@Big-Shark
Aug 26 2015 17:15
@romach3 ну если было бы штук 5 модулей, и там контролеры и их вью, было бы еще куда нешло
@romach3 хотя я даже тут не понимаю смысл этого, в больших приложениях зачастую нет как таковых модулей, или весь сайт это 1 модуль
Artemy
@lartie
Aug 26 2015 17:15
@Big-Shark ааа. разве можно как то составить запрос? У меня время хранится в unixtime. Если да, то можно подсказку?
Maxim
@Big-Shark
Aug 26 2015 17:16
@artemiydeveloper ну групировка, и функции работы с датами и временем
Artemy
@lartie
Aug 26 2015 17:17
@Big-Shark не знал, что есть такие функции даже. спасибо, посмотрю.
romach3
@romach3
Aug 26 2015 17:17
@Big-Shark а как же "больше абстракций для бога абстракций"? Конечно, выделять каждый чих в свою папочку не стоит, но разделить всё на отдельные группы имхо вполне разумно
Maxim
@Big-Shark
Aug 26 2015 17:18
@romach3 так я разделяю папками в контролерах и вью
@romach3 у меня конечно не валяется все в одной папке)
@romach3 я не фанат ддд, и особо не понимаю в нем смысл, или я просто неверно интерпретирую его)
romach3
@romach3
Aug 26 2015 17:21
@Big-Shark так ты просто из другого лагеря ) ну лан тогда )
Maxim
@Big-Shark
Aug 26 2015 17:22
@romach3 :смайлик звериного оскала:
Парни, небольшой вопрос про разработку модуля, отдельного от фреймверка
Есть несколько классов, и они как бы завязаны друг на друг, и хочется использовать ди, скажем так
и передавать в класс, ныжные ему классы
но тогда мы не можем нормально использовать new, и нам нужен некий app::make
теперь вопрос, как все это нормально использовать, чтобы не таскать с пакетом свой ди ?
Paul Klementyev
@klermonte
Aug 26 2015 17:29
@Big-Shark использовать готовый ди)
Maxim
@Big-Shark
Aug 26 2015 17:30
@klermonte ну смотри, в итоге каждый пак будет использовать разные ди, и в итоге у нас в придачу еще штук 5 ди будут стоять, кроме тех что используй фреймверк. Это норм думаешь?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:30
@Big-Shark ограничения на верисю пыха есть?
Paul Klementyev
@klermonte
Aug 26 2015 17:30
Ну ты же не уточнил, что пакет будет использоваться только с ларавел
Maxim
@Big-Shark
Aug 26 2015 17:30
@SerafimArts ну 5.5
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:31
ну тогда печально, да
Paul Klementyev
@klermonte
Aug 26 2015 17:31
если так, то мне кажется вполне допустимым использование app()
Maxim
@Big-Shark
Aug 26 2015 17:31
@klermonte нет, он будет отвязан от фрейма, но если его будут и с фреймами использовать
@SerafimArts а если нет ограничения?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:31
иначе можно было делать метод new + приватный конструктор или возвращать анонимные объекты
Paul Klementyev
@klermonte
Aug 26 2015 17:31
@Big-Shark тогда я хз как умно переключать ди с пакетного на фреймовый
@Big-Shark а ты уверен, что размер пакета прям вынуждает использовать ди? может достаточно просто передавать зависимости самому?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:34
return new class extends Dependency
{
    public function __construct() 
    {
        throw new LogicException('Can not call constructor, use ::new');
    }

    public static new(...$args)
    {
        $instance = new ReflectionClass(static::class)
                ->newInstanceWithoutArgs();
         // Inject properties
        $instance->__construct(...$args);
        return $instance;
    }
}
как-то так можно запилить проксю
хотя хз
не, нельзя
stranger-ru
@stranger-ru
Aug 26 2015 17:35
@klermonte чета не получается с пагинацией, в этот метод {!! $pager->render() !!} вторым парамером педелать вьюшку? а первым параметром что должно быть? Можешь показать как должно быть в итоге?
Maxim
@Big-Shark
Aug 26 2015 17:35
@klermonte ну можно конечно и самому, но как их потом подменить в случае необходимости?
Paul Klementyev
@klermonte
Aug 26 2015 17:35
@SerafimArts тогда уж просто фасад и все
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:35
нуу...
Paul Klementyev
@klermonte
Aug 26 2015 17:36
фасад синстанцирует и сконфигурирует все зависимости
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:36
да, возможно
Paul Klementyev
@klermonte
Aug 26 2015 17:36
и вернет готовую к использованию систему
Maxim
@Big-Shark
Aug 26 2015 17:39
Вы ушли от темы)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:40
я к ней даже и не походил
Maxim
@Big-Shark
Aug 26 2015 17:40
Что делать когда тесты валятся на php5.4 из за array_column? Правельно, делать минимальной версию 5.5 )
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:40
+
5.4 депрекейтед в сентябре
projct1
@projct1
Aug 26 2015 17:41

подскажите плз, есть модель с полиморфной связью к модели Content

class Category extends Model
{
    protected $fillable = ['image_id'];

    public function content()
    {
        return $this->morphOne(Content::class, 'content');
    }
}

в модели Content уже прописан $fillable

class Content extends Model
{
    protected $fillable = [
        'name',
        'slug',
        'h1Tag',
        'active',
        'content',
        'titleTag',
        'parent_id',
        'keywordsTag',
        'descriptionTag'
    ];
}

но почему-то при обновлении $category->content()->update($this->request->all()) ругается что не найдены поля _method и _token в таблице
хотя я же прописал $fillable для Content

Paul Klementyev
@klermonte
Aug 26 2015 17:42
@stranger-ru а не, вру, в 5.1 это изменили, тебе нужно передавать в render() Presenter свой или назнfчить глобально свой presenterResolver методом presenter(Closure $resolver) пагинатора. Сделать это можно в сервис провайдере
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:44
@rorc fillable - это поля, доступные для прохода сквозь гвардед
очень странно что у тебя не вылетает ошибка как раз в гвардед
Maxim
@Big-Shark
Aug 26 2015 17:44
Кстати, наверное все знают про метод __invoke() у класса
Oleg
@Malezha
Aug 26 2015 17:45
@rorc $category->content()->update($this->request->except('_method', '_token'))
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:45
@Big-Shark да, я только что спросил у своей чашки кофе - она знает такой метод
projct1
@projct1
Aug 26 2015 17:45
@SerafimArts при чём тут гвардед? я конкретно для Content указал какие поля можно сохранять при массовом заполнении
Maxim
@Big-Shark
Aug 26 2015 17:45
как думаете, норма сделать чтобы было не Object::create()-> а просто Object()->
projct1
@projct1
Aug 26 2015 17:45
@Malezha это да, спс, но проблема не ясна, почему $fillable не действует
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:45

@rorc

очень странно что у тебя не вылетает ошибка как раз в гвардед

но возьмём это как данность
Maxim
@Big-Shark
Aug 26 2015 17:46
@SerafimArts а где мне такую чашку кофе взять?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:46
тогда как подсказали выше
->except на запросе
Paul Klementyev
@klermonte
Aug 26 2015 17:46
@rorc вызов update у релейшена равносилен просто апдейту, без прохода через всякие филабл и гвардед
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:46
@klermonte спасибо, не знал
Paul Klementyev
@klermonte
Aug 26 2015 17:46
Юзай updateOrCreate
@SerafimArts сам не знал, только что по коду посмотрел)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:47
гыг
=)
Paul Klementyev
@klermonte
Aug 26 2015 17:47
я пока на здешние вопросы ищу ответы, все исходники наизусть выучу:D
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:47
ага :D
Maxim
@Big-Shark
Aug 26 2015 17:47
@klermonte с нами такое уже происходило)
projct1
@projct1
Aug 26 2015 17:48
@klermonte понятно, это плохо
Oleg
@Malezha
Aug 26 2015 17:48
Пора присоединятся к вам =)
Paul Klementyev
@klermonte
Aug 26 2015 17:48
Можно будет викторину устраивать:D
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:48
кстати, сегодня в свободное время ещё чуток допилил свою файлопомойку, на правах рекламы пару гифок:
http://docs.rudev.org/d/780984d0651df9fdb52b548e7b07f092
http://docs.rudev.org/d/9e33dd25899ff9cdd9bd7533e423d70d
=)
всё, теперь можно спокойно домой
Paul Klementyev
@klermonte
Aug 26 2015 17:48
@rorc че плохо, ты заменить метод не сможешь? с update на updateOrCreate?
projct1
@projct1
Aug 26 2015 17:49
@klermonte зачем мне create если я апдейтить зхочу?
Paul Klementyev
@klermonte
Aug 26 2015 17:49
@SerafimArts knokout?
блин
ну у меня слов нету просто!
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:49
@klermonte +
Paul Klementyev
@klermonte
Aug 26 2015 17:49
ну честно
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:49
кнокаут + кофеёк
Paul Klementyev
@klermonte
Aug 26 2015 17:49
это я про рорка:D если че
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:49
сырцы естественно на гитхабе все
Paul Klementyev
@klermonte
Aug 26 2015 17:50
а интерфейс у тебя крут))
приятный
надеюсь такой же быстрый как и красивый :D
projct1
@projct1
Aug 26 2015 17:50
@klermonte та же самая херня, не помогает
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:50
@klermonte нуууу....
:D
там проблема в количестве файлов
надо как-то их сокращать
Paul Klementyev
@klermonte
Aug 26 2015 17:50
пагинируй)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:51
а грузить партиями анреал
Paul Klementyev
@klermonte
Aug 26 2015 17:51
че так?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:51
нужен фуллтекст поиск без аякса
в реалтайме
ибо делать нагрузку лайками на БД - проще убиться
Paul Klementyev
@klermonte
Aug 26 2015 17:51
я б смирился со 100-200 мс задержкой при поиске
Oleg
@Malezha
Aug 26 2015 17:51
@SerafimArts сокеты?)
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:51
шаред хостинг
stranger-ru
@stranger-ru
Aug 26 2015 17:51
@klermonte ок, понял, спасибо.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:52
так что без сокетов
плюс каждый документ - это объект жс
т.е. придётся каждый раз восстанавливать состояние
что выделено, какие слова подсвечивать и т.д.
Paul Klementyev
@klermonte
Aug 26 2015 17:52
@SerafimArts так вот почему советуют не держать много файлов в одной директории:D
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:53
точно, надо запилить директории+
:D
Paul Klementyev
@klermonte
Aug 26 2015 17:53
аххах
йа гений
Oleg
@Malezha
Aug 26 2015 17:54
@SerafimArts кстати, там походу бага.
бага
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:54
да, знаю =(
но это старый дезигн
Maxim
@Big-Shark
Aug 26 2015 17:55
@SerafimArts кэш может?
Oleg
@Malezha
Aug 26 2015 17:55
Как я понимаю, сурсы закрытые?
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:55
@Big-Shark все данные в кеше и так
Maxim
@Big-Shark
Aug 26 2015 17:56

@Malezha

сырцы естественно на гитхабе все

Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:56
т.е. при нажатии f5 все картинки и прочие данные грузятся из сессион сторадж
Oleg
@Malezha
Aug 26 2015 17:56
@Big-Shark уже нашел, они в группе. Просто сразу не увидел
Maxim
@Big-Shark
Aug 26 2015 17:56
@SerafimArts не, я имею ввиду на стороне сервера, чтобы не читать все файлы
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:56
все вьюшки грузятся асинхронно и кешатся в локалсторадже
Paul Klementyev
@klermonte
Aug 26 2015 17:56

хах, задачка

метод в базовом HasOneOrMany релейшне

    public function updateOrCreate(array $attributes, array $values = [])
    {
        $instance = $this->firstOrNew($attributes);

        $instance->fill($values);

        $instance->save();

        return $instance;
    }

его переопределяет метод в MorphOneOrMany релейшне
угадайте че в нем?
правильный ответ:

    public function updateOrCreate(array $attributes, array $values = [])
    {
        $instance = $this->firstOrNew($attributes);

        $instance->fill($values);

        $instance->save();

        return $instance;
    }

найди 10 отличий блин

Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:56
This message was deleted
а, ладно, пофигу: http://vk.com/serafim_arts?w=wall-22971216_131%2Fall =) Полная халява естественно
alex
@eskrano
Aug 26 2015 17:58
вступил в группу.
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:59
ничоси
Paul Klementyev
@klermonte
Aug 26 2015 17:59
@rorc так что не надо мне тут, там fill вызывается, должон пропускать только филабл поля
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 17:59
я прям как спамер-продвиженец :D
JhaoDa
@jhaoda
Aug 26 2015 18:10
Пичалька. что нельзя унаследовать docblock интерфейса в трейте
Это, конечно, к шторму вопрос...
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 18:11
в шторме вообще печаль с трейтами
с ними даже автокомплит не всегда срабатывает
например для приватных методов\полей
вроде до сих пор не починили
JhaoDa
@jhaoda
Aug 26 2015 18:13
М-да, чо ж делать-то, дублировать доку не хочется
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 18:14
ну а больше вариантов, кроме копипасты нету
projct1
@projct1
Aug 26 2015 18:14

@klermonte

@rorc так что не надо мне тут, там fill вызывается, должон пропускать только филабл поля
не пашет, ты попробуй, а не на догадках основывайся

JhaoDa
@jhaoda
Aug 26 2015 18:14
С другой стороны, те методы, что я вынес в трейт, более негде не используются. И это не труЪ. Вынес потому, что класс пухнет
Но это пачка геттеров/сеттеров, их в сервис не утащить
NickPanda
@NickPanda
Aug 26 2015 18:15

Есть два фасада Storage и File

        $request->file('file')->move(public_path().$dir, $filename);

Данным кодом я загруженнй файл перемещаю в папку $dir и он эту папку если нет создает тут все хорошо
Далее делаю

    Storage::copy(public_path().$dir.'/'.$filename,public_path().'/qwerty/'.$filename);

В данном случае он выкидывает FileNotFoundException in Filesystem.php line 435:
Говоря, что не можжет найти файл который существует (который только что перенесли)

File::copy(public_path().$dir.'/'.$filename,public_path().'/qwerty/'.$filename);

В этом случае он говорит failed to open stream: No such file or directory
и говорит, что не может найти новую директорию и туда переместить (если же создать нужную папку, то все будет отлично, но мне нужно чтобы он в случае если нет папки ее создавал, как в 1 случае при загрузке
Если кому будет не сложно объяснить про фасад File

Заранее спасибо!

JhaoDa
@jhaoda
Aug 26 2015 18:17
@NickPanda Storage всегда работает относительно storage/app, писать в пути public_path() не имеет смысла
This message was deleted
А, не создает папку... он и не должен её создавать
NickPanda
@NickPanda
Aug 26 2015 18:19
А почему он в данном случае ее создает?
$request->file('file')->move(public_path().$dir, $filename);
Paul Klementyev
@klermonte
Aug 26 2015 18:20
@rorc не, не буду. Разбирись сам, а нам расскажешь
Maxim
@Big-Shark
Aug 26 2015 18:20
Уахаха, я придумал как раскрашивать себе бар на гитхабе, ничего не делая)
git commit -a --amend считается за коммит, но в истории его нет
NickPanda
@NickPanda
Aug 26 2015 18:20
@jhaoda насчет Storage
$directories = Storage::directories('qwerty');
dd($directories);
выдает пустой массив и не создает папку в storage/app
JhaoDa
@jhaoda
Aug 26 2015 18:21
@NickPanda а разве должен?
NickPanda
@NickPanda
Aug 26 2015 18:21
@jhaoda ой, каюсь мой косяк(
Maxim
@Big-Shark
Aug 26 2015 18:22
@SerafimArts ты у нас спец по пхп7 и 7.1 ?
Oleg
@Malezha
Aug 26 2015 18:22
@Big-Shark ты что ли пытаешься там слово какой вывести?)
NickPanda
@NickPanda
Aug 26 2015 18:22
@jhaoda я правильно понимаю, что методы copy, move, makeDirectory
работают как с File так и с Storage
?
JhaoDa
@jhaoda
Aug 26 2015 18:23
@NickPanda по вопросу выше. Подумать и внимательней посмотреть не пробовал?
Maxim
@Big-Shark
Aug 26 2015 18:24
@Malezha да вроде нет) Хотя у меня были такие идеи)
JhaoDa
@jhaoda
Aug 26 2015 18:24
@NickPanda File::copy и File::move. Разницу видишь?
Не знаю внутренней кухни, но подозреваю, что при перемещении папка создается, а при копировании — нет.
NickPanda
@NickPanda
Aug 26 2015 18:27
@jhaoda в этих случаех он ничего не создает!!
Создает лишь в этом случае $request->file('file')->move(public_path().$dir, $filename);
JhaoDa
@jhaoda
Aug 26 2015 18:27
@NickPanda блин... $request->file('file') это UploadedFile
Разницу ощущаешь?
И там внутри работает функция move_uploaded_file
NickPanda
@NickPanda
Aug 26 2015 18:28

@jhaoda а при использование File::move
Он говорит ErrorException in Filesystem.php line 146:

То есть при загрузке он создает нужные папки, а при последущей работе не будет создавать
Значит надо будет проверить есть ли папка, и если ее нет то ее создать выходит так?

JhaoDa
@jhaoda
Aug 26 2015 18:29
@NickPanda типа того
NickPanda
@NickPanda
Aug 26 2015 18:32
@jhaoda блин это как то обидно, что он не создает каталог, хотя как я понял во время использования move можно сразу и переименовать файл)
Итак я верно понял, что Storage работает относительно папки storage/app
то в случае File он работает относительно папки public и писать public_path() не нужно?
JhaoDa
@jhaoda
Aug 26 2015 18:37
@NickPanda нет, в случае File ты понял не верно
Он может работать со всей ФС
NickPanda
@NickPanda
Aug 26 2015 18:42

@jhaoda я сделал

$directories = File::makeDirectory('qweqr');

и он в public создал папку

JhaoDa
@jhaoda
Aug 26 2015 18:43
@NickPanda где ты это сделал?
NickPanda
@NickPanda
Aug 26 2015 18:43
в контроллере)
@jhaoda
И да, + Storage
$directories = Storage::makeDirectory('qweqr');
тут он даже если существует каталог выдает true )
JhaoDa
@jhaoda
Aug 26 2015 18:43
@NickPanda загляни в код это функции
NickPanda
@NickPanda
Aug 26 2015 18:44
@jhaoda заглянул)
JhaoDa
@jhaoda
Aug 26 2015 18:44
Есть там упоминание паблика?
NickPanda
@NickPanda
Aug 26 2015 18:44
@jhaoda нету
В коде нету, но он создает в public //
JhaoDa
@jhaoda
Aug 26 2015 18:47
Вопрос не к ларавель
NickPanda
@NickPanda
Aug 26 2015 18:47
@jhaoda я кажется понял почему он так делает)
Ведь домен ларавел смотрит в папку public)
JhaoDa
@jhaoda
Aug 26 2015 18:48
@NickPanda и?
NickPanda
@NickPanda
Aug 26 2015 18:49
@jhaoda и как я могу предположить он относительно этой папки и работает иначе хз)
JhaoDa
@jhaoda
Aug 26 2015 18:49
@NickPanda если только ограничения на уровне РНР или ОС
NickPanda
@NickPanda
Aug 26 2015 18:51
короче надо писать public_path() чтобы не было косяков
romach3
@romach3
Aug 26 2015 18:52
аминь. слава магии!
NickPanda
@NickPanda
Aug 26 2015 18:54
Знаете, он странный, почему то при создание папки он не проверяет существует ли папка, а вот при копирование он уже проверяет)
Придется, их кусок подрезать
Kirill Nesmeyanov
@SerafimArts
Aug 26 2015 19:19

@SerafimArts ты у нас спец по пхп7 и 7.1 ?

@Big-Shark ну jphp частично поддерживает плюшки php 7, так что успел наиграться на практике

Alex Soveliev
@suroviy
Aug 26 2015 19:55
@romach3 е...ать ты угораешь)))
jongleb
@jongleb
Aug 26 2015 19:55
Ребят, обновление данных пользователя направлять на новый контроллер какой нибудь или у Auth есть штучки типа апдейта готовые?
alex
@eskrano
Aug 26 2015 19:56
@jongleb Auth::user()->update(['name'=>'Alex']);
jongleb
@jongleb
Aug 26 2015 19:57
@eskrano Ништяк спасибо
А что на счет пароля
Сравнить как то старый
и новые с подтврежлнием
Декриптить же не вариант?
alex
@eskrano
Aug 26 2015 19:58
Auth::user()->password = Hash::make($new);
Auth::user()->save();
jongleb
@jongleb
Aug 26 2015 19:58
А если я хочу чтобы он старый ввел
или на него хеш
и с хешированым сравнивать
?
не ручной способ есть?
alex
@eskrano
Aug 26 2015 19:58
@jongleb
if (!Hash::check($old,Auth::user()->password))
если с старым новый не совпал
jongleb
@jongleb
Aug 26 2015 19:59
@eskrano Спасибо большое!
jongleb
@jongleb
Aug 26 2015 20:28
@eskrano Все супер тока строчка if(isset($request->old_pass) and isset($request->pass)) больно уж юродивая
Brezhnev Ivan
@vanchelo
Aug 26 2015 21:05
Попробуй так
if ($request->has(['old_pass', 'pass'])) {}
if ($request->has('old_pass', 'pass')) {}
Maxim Kot
@batFormat
Aug 26 2015 21:41
Подскажет кто нить как добраться до строчки "brand" => "Makita" нужно вывести это дело в форме (edit)
Client {#162 ▼
  #guarded: array:1 [▶]
  #connection: null
  #table: null
  #primaryKey: "id"
  #perPage: 15
  +incrementing: true
  +timestamps: true
  #attributes: array:5 [▶]
  #original: array:5 [▶]
  #relations: array:1 [▼
    "repairs" => Collection {#165 ▼
      #items: array:1 [▼
        0 => Repair {#168 ▼
          #guarded: array:1 [▶]
          #connection: null
          #table: null
          #primaryKey: "id"
          #perPage: 15
          +incrementing: true
          +timestamps: true
          #attributes: array:11 [▶]
          #original: array:11 [▼
            "id" => 1
            "client_id" => 1
            "brand" => "Makita"
            "model" => "9069"
            "description" => "Якорь"
            "price" => "500"
            "whorepair" => ""
            "status" => "диагностика"
            "out_at" => "0000-00-00"
            "created_at" => "2015-08-19 21:46:12"
            "updated_at" => "2015-08-19 21:46:12"
          ]
          #relations: []
          #hidden: []
          #visible: []
          #appends: []
          #fillable: []
          #dates: []
          #dateFormat: null
          #casts: []
          #touches: []
          #observables: []
          #with: []
          #morphClass: null
          +exists: true
          +wasRecentlyCreated: false
        }
      ]
    }
  ]
  #hidden: []
  #visible: []
  #appends: []
  #fillable: []
  #dates: []
  #dateFormat: null
  #casts: []
  #touches: []
  #observables: []
  #with: []
  #morphClass: null
  +exists: true
  +wasRecentlyCreated: false
}
JhaoDa
@jhaoda
Aug 26 2015 21:55
@batFormat почитать про связи?
Maxim Kot
@batFormat
Aug 26 2015 21:59
Связь вроде как всё окей..
Mikhail Donskoy
@mdnsk
Aug 26 2015 22:01
$client->repairs->first()->brand
Maxim Kot
@batFormat
Aug 26 2015 22:08
@BaldaI , Уже близко
alt
JhaoDa
@jhaoda
Aug 26 2015 22:10
@batFormat ты что, написал что-то типа Form::text($client->repairs->first()->brand)?
Maxim Kot
@batFormat
Aug 26 2015 22:11
Почти!
Но, я быстро обучаюсь))
JhaoDa
@jhaoda
Aug 26 2015 22:12
@batFormat нет, не канает. Указывай имя поля отдельно, а уже в значение пиши то, что выше подсказали
Maxim Kot
@batFormat
Aug 26 2015 22:14
Так, или я не правильно понял?
{!! Form::text("brand","$client->repairs->first()->brand", ['class'=>'form-control'] ) !!}
Alexander Popov
@ruelephant
Aug 26 2015 22:14
жалко мне за курсы не платят :)
а то бы помог
JhaoDa
@jhaoda
Aug 26 2015 22:15
@batFormat кавычки убери у второго параметра
Maxim Kot
@batFormat
Aug 26 2015 22:16
Благодарю ребят!
Всё работает!