These are chat archives for LaravelRUS/chat

9th
Nov 2016
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 05:53

Всем привет! Подскажите пожалуйста, если я не хочу хранить и scopes, и relations, а также какие-то внутренние методы-поведения в файле класса модели (чтобы не создавать кашу из всего этого в одном файле), то нормально ли делать следующим образом, например, есть модель Order (заказ):

  • Order (здесь хранится только сама модель с перечислением полей $fillable, $casts, $hidden)
  • OrderRelations trait (здесь хранятся только отношения-связи с другими моделями)
  • OrderScopes trait (здесь хранятся только query scopes)
  • OrderServices trait (здесь хранятся только методы, работающие с самой моделью в контексте $this, или каким-то образом получающие модель ч/з create, static::findOrFail или выборки модели, или работа с подмоделями, например Attachment - это файлы, прикреплённые к заказу)

Можно ли так делать?
Да, я понимаю для чего нужны трейты - для избавления от повторного кода, и здесь эти трейты нигде, кроме самой модели не используются. Но в данном случае мы получаем удобство работы с самой моделью из под $this или static

KarmaBot
@KarmaBot
Nov 09 2016 05:53
Привет, @Nur777! Проходи, присаживайся. В ногах правды нет :)
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:00
@Nur777 у меня есть подобные случаи. Сильно логику не рушит, но улучшает код. Почему нет? Я думаю тут нет ниодного человека который всё делает верно. Если тебе так удобно и ты считаешь что другие тоже быстро поймут, то почему бы и нет?
JhaoDa
@jhaoda
Nov 09 2016 06:01
@symbios-zi ты что?! Фаулер приснится ночью после такого!
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:01
@jhaoda а каков правильный путь?
JhaoDa
@jhaoda
Nov 09 2016 06:01
@Nur777 послать Фаулера нахер и спать дальше
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:02
)))
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:02
@jhaoda не такого ответа я ожидал от такого профессионала как ты)
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:04
@Nur777 доступ к ларакастс есть? там есть курс о том как бороться с суперклассами
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:05
@symbios-zi есть, спасибо, пойду гляну. Ещё хотел сказать, что таким образом думал логику контроллеров уменьшить.
devweb99
@devweb99
Nov 09 2016 06:07
Как авторизацию поменять с email на login ?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:07
@symbios-zi спасибо
KarmaBot
@KarmaBot
Nov 09 2016 06:07
Спасибо (+1) для @symbios-zi принято! Текущая карма +189.
Alexander
@Dualse
Nov 09 2016 06:09
@devweb99 Делать проверку по логину, а не мылу?
devweb99
@devweb99
Nov 09 2016 06:09
lf
да
Alexander
@Dualse
Nov 09 2016 06:09
@devweb99 Ну вот тебе и ответ. Проверяй по логину, а не мылу
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:10
@Dualse )))
devweb99
@devweb99
Nov 09 2016 06:10
я все поменял и не автозируется
напишите инструкцию пожалуйста
Alexander
@Dualse
Nov 09 2016 06:11
@devweb99 А ты покажи, что ты менял
devweb99
@devweb99
Nov 09 2016 06:11
в контроллере поменял
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:12
@devweb99 код за тебя не написать? )))
devweb99
@devweb99
Nov 09 2016 06:12
сейчас
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:12
@devweb99 https://laravel.com/docs/5.3/authentication
см. $$ Username Customization
@jhaoda а как ты решаешь подобную проблему, опиши вкратце хотя бы пожалуйста? Честно нет идей как сделать лучше. Делить на несколько объектов не вариант же.
Alexander
@Dualse
Nov 09 2016 06:15
@devweb99 Лучше послушай @KarmaBot убери код на pastebin-сервис, а сюда вставь ссылку и заверни ее в обратные апострофы.
Ну вот я вижу, что ты делаешь валидацию логина и пароля, а также создаешь нового юзера. А где тут про изменения данных для аутефикации?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:17
@devweb99 а ещё пройди глянь по ссылке, которую я тебе скинул.
JhaoDa
@jhaoda
Nov 09 2016 06:17
@Nur777 меня скоупы и связи в модели не напрягают
Alexander
@Dualse
Nov 09 2016 06:18
@devweb99 Вот смотри какой метод есть у laravel:
    /**
     * Get the login username to be used by the controller.
     *
     * @return string
     */
    public function loginUsername()
    {
        return property_exists($this, 'username') ? $this->username : 'email';
    }
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:20
@jhaoda мм, хорошо, а что ты делаешь с такими методами, как, например $order->setAsCompleted() - где, к примеру, несколько полей одновременной меняются? Или, например, $order->calcLeftTime() - где высчитываются по нескольким полям сколько времени прошло, допустим?
Или, например, методы Order::pay($order) - оплата заказа? Когда этот метод используется в нескольких контроллерах, то я его и вынес в саму модель. Из-за подобных вещей в модели есть много методов, которые я не знаю куда наилучшим образом распределить.
JhaoDa
@jhaoda
Nov 09 2016 06:21
@Nur777 что-то можно выносить в сервисы
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:21
@jhaoda -провайдеры которые?
JhaoDa
@jhaoda
Nov 09 2016 06:21
@Nur777 просто классы-сервисы
devweb99
@devweb99
Nov 09 2016 06:22
ларавел 5.2 и 5.3 сильно отличаются ?
JhaoDa
@jhaoda
Nov 09 2016 06:22
@devweb99 ты видел, о чем тебя бот попросил?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:24
@jhaoda Действительно, я уже видел подобное мнение. Смысл в том, чтобы вынести методы, работающие с моделями и подмоделями в другое место просто?
Получается, что вызов Order::pay($order) превратится в OrderService::pay($order)?
JhaoDa
@jhaoda
Nov 09 2016 06:24
@Nur777 примерно так, да
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:25
@jhaoda спасибо! Хм, и все методы будут static у OrderService?
KarmaBot
@KarmaBot
Nov 09 2016 06:25
Спасибо (+1) для @jhaoda принято! Текущая карма +1296.
JhaoDa
@jhaoda
Nov 09 2016 06:25
@devweb99 игнорирование просьб бота ни к чему хорошему не приведет
@Nur777 зачем? Обычный методы. Внедряй сервисы через DI в нужные контроллеры и всё
Равно как и Order::pay($order) должен быть $order->pay()
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:26
@jhaoda вот-вот, но ведь тогда нужно будет делать new OrderService каждый раз, чтобы вызвать методы... аа, понял-понял.
@jhaoda спасибо, попробую)
KarmaBot
@KarmaBot
Nov 09 2016 06:28
Спасибо (+1) для @jhaoda принято! Текущая карма +1297.
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:33
@jhaoda а вот ещё,
  1. Получается, что в OrderService методы не статические, но кое где работающие с моделью Order в статическом контексте, например Order::findOrFail()?
  2. А работу с полями, например, когда требуется изменить состояние нескольких полей сразу ($order->setAsCompleted()), или высчитать что-то внутреннее (пусть, к примеру, сколько времени прошло с момента заказа $order->timeLeft()) - это делать удобнее, получая поля из-под $this. Эти методы правильнее в самой модели держать, или нужно выносить в сервисный класс?
JhaoDa
@jhaoda
Nov 09 2016 06:34
@Nur777 от задачи зависит, нет четкого ответа
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:38
@jhaoda понял.
Мда, в самом контроллере-то при этом доступ к OrderService будет ч/з (если я правильно понял, что нужно через __construct внедрить объект OrderService)
$this->orderService->callMethod($args) - длинный код получается..., вместо
OrderService::callMethod($args)
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:40
    Booting (52.32ms)
    Application (238.05ms)
у кого какие показатели?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:41
@symbios-zi а как их получить?
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:41
@Nur777 debugbar?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:42
@symbios-zi package?
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:42
@Nur777 ну да, а ты типа не используешь его?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:43
@symbios-zi не пользуюсь ваще)))
специально, чтобы к хорошему не привыкать.
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:43
@Nur777 лол, а как ты можешь быть уверенным в том что у тебя к примеру не 1000 запросов вместо 10?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:45
@symbios-zi не могу быть уверенным конечно.
@jhaoda, это правильно, что теперь в контроллере придётся писать
$this->orderService->callMethod($args), вместо OrderService::callMethod($args)
можно конечно в начале метода делать (в каждом методе контроллера, где нужен вызов $this->orderService !)
$localVariable = $this->orderService
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:53
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:54
@symbios-zi именно об этом случае мой вопрос, да, ты верно меня понял.
Anton Vorontsov
@symbios-zi
Nov 09 2016 06:55
$this->orderService->myMethod($args)
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 06:56
@jhaoda понял.
Мда, в самом контроллере-то при этом доступ к OrderService будет ч/з (если я правильно понял, что нужно через __construct внедрить объект OrderService)
$this->orderService->callMethod($args) - длинный код получается..., вместо
OrderService::callMethod($args)
@symbios-zi вот вопрос, а почему неправильно вызвать метод ч/з стат. контекст, всё равно ведь объект по сути не нужно, чтобы создавался?
Anton Vorontsov
@symbios-zi
Nov 09 2016 07:01
@Nur777 ну как минимум думаю что тестировать тяжело. DI тестировать легче
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 07:01
@symbios-zi аа, всё, теперь понял, спасибо)
KarmaBot
@KarmaBot
Nov 09 2016 07:01
Спасибо (+1) для @symbios-zi принято! Текущая карма +190.
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 07:02
@symbios-zi но код получается длиннее, как длинная колбаса... :(, ну, раз спецы говорят это правильно - надо делать так.
Anton Vorontsov
@symbios-zi
Nov 09 2016 07:03
@Nur777 это почему он становится как колбаса? Если так пишешь то проблема только к себе лично
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 07:04
$this->orderService->callMethod($args) - длинно же, нет?
а если ещё if ($this->orderService->isPaid($order)) {
@Nur777 у тебя неверные ценности, ты думаешь что качество кода только в количестве символов. Это верно только отчасти
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 07:07
@symbios-zi спасибо за ссылку, ушёл смотреть.
Насчёт кол-ва символов, нет, я думаю что код должен быть самопонятным ("покажи мне код"), но стараюсь всё-таки и не делать его широченным, чтобы программер без широкого экрана тоже смог увидеть конец строки :D
KarmaBot
@KarmaBot
Nov 09 2016 07:07
Спасибо (+1) для @symbios-zi принято! Текущая карма +191.
Alexander
@spartaque
Nov 09 2016 07:48

Привет всем.
Есть очень интересный случай у меня, к сожалению не получается найти решение. Есть модели:

 class Bar extends Model {
 }
 class Foo extends Model {
    public function bar(){
        return $this->hasMany(Bar::class);}
    public function custom_bar(){
        //@todo: some realization
}
}

Есть таблица bars с полями price, profit.
И есть таблица user_bars с полем user_id с полями price, profit, которые настроены для определенных пользователей. Вопрос: как мне получить в методе custom_bar() price & profit конкретного пользователя?

KarmaBot
@KarmaBot
Nov 09 2016 07:48
@spartaque и тебе не хворать :)
Ваня Devium
@webdevium
Nov 09 2016 08:00
привет мужики
KarmaBot
@KarmaBot
Nov 09 2016 08:00
Прувет, @webdevium!
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 08:14
@spartaque А конкретного пользователя откуда берёшь?
Передаёшь в метод или получаешь ч/з $this в Foo?
Andrei Sosnov
@atehnix
Nov 09 2016 08:30
@spartaque лучше бы ты привел реальные имена моделей. Т.к. непонятно при чем тут вообще Foo, если тебе нужны Bar для User.
Alexander
@spartaque
Nov 09 2016 08:37
@Nur777 Так вот в этом и проблема, что я не знаю как пробросить в модель user_id, так как данные получаются через еще одну модель Baz->Foo->Bar
@atehnix Там названия моделей TargetGeo && Target соответственно, я думаю это не особо улучшит понимаемость ситуации
Вообщем, решил не заморачиваться получать данные через связи моделей, а просто написал методы и меняю значения для конкретного пользователя в цикле
Alexander
@Dualse
Nov 09 2016 08:43
@spartaque :+1: Можно с ларой тоже не заморачиваться, а писать php-скрипты без ооп и прочих няшностей
Anton Vorontsov
@symbios-zi
Nov 09 2016 08:43
@Dualse :D
Dave
@aios
Nov 09 2016 08:45
@symbios-zi xD
Andrei Sosnov
@atehnix
Nov 09 2016 08:46
@aios )
Alexander
@spartaque
Nov 09 2016 09:05
@Dualse погодь, выйду посмеюсь, умник. Ты бы лучше хоть какой-то вариант предложил, а то я тоже могу шутки шутить.
Alexander
@Dualse
Nov 09 2016 09:11

@spartaque Возможно. Если ты мне объяснишь, как это понять:

с полем user_id с полями price, profit

Anton Vorontsov
@symbios-zi
Nov 09 2016 09:13
@spartaque доходчиво опиши что за модели и что за связи. Залей их на laravel.io/bin Тебе уже сказали что у телепатов сейчас отпуск
Alexander
@Dualse
Nov 09 2016 09:13
@symbios-zi Коммерческая тайна же
Alexander
@spartaque
Nov 09 2016 09:14
@Dualse Вот с этого можно было и начать. Сообщение переписывал, остались артефакты. Сейчас все нормально опишу
Alexander
@Dualse
Nov 09 2016 09:15

@spartaque Вот с этого и надо было начинать, а не с:

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

Anton Vorontsov
@symbios-zi
Nov 09 2016 09:20
@spartaque это тебе надо было начать, в чате никто и никому ничем не обязан. По опыту: помогают тем кто толково разъясняет проблему. еще рекомендую прочитать правила чата: http://laravel.su/articles/nine-circles-of-chat
Dave
@aios
Nov 09 2016 09:29
@spartaque и доку.. причем не по ларе - а по пыхе. в моменте наследования в контексте MVC если быть точным. и посмотреть в сторону своей кривой архитектуры.
@spartaque а потом начинать гнать на людей, которые гонят на тебя за то что у кого то руки не из того места растут и мозг не в ту сторону повернут.
Andrei Sosnov
@atehnix
Nov 09 2016 09:31
@aios перегибаешь
Dave
@aios
Nov 09 2016 09:32
@atehnix его вопрос состоит в том что у него две связи - и он путается в 3 сущностях.
хотя по сути ему нужна одна связь BelongsToMany
и в pivot хранить данную пользователя если нужно - под эту связь выделить сущность и назначить ей еще одну связь с пользователем.
и того у нас 3 сущности - но работает он всего с одной
@atehnix просто если гнать на всех за то что у тебя жизнь не задалась - то ну как бы первое что ты получишь - это по шапке.
за поведение)
Alexander
@spartaque
Nov 09 2016 09:53
Вот полностью описал мой случай. http://laravel.io/bin/Gy8Nk Если кого и обидел - извините. Поведение у меня нормальное, просто не люблю когда люди начинают вести себя сверхостно над другими, указывая на их возможные недостатки без явных на то причин или не до конца не разобравшись в ситуации.
Alexander
@Dualse
Nov 09 2016 10:01
@spartaque Так в чем вопрос? Хочешь сделать так, если есть связь user_shipping, то выводить эту цену, если нет, то цену продукта?
Alexander
@spartaque
Nov 09 2016 10:04
@Dualse код такой
$products = Product::with(['custom_shipping'])->all();
Если у пользователя есть кастомная цена доставки - вывести ее, если нету - вывести цену доставки по дефолту с модели Shipping
Alexander
@Dualse
Nov 09 2016 10:06
@spartaque Что такое custom_shipping? Связь для таблицы users_shipping?
Alexander
@spartaque
Nov 09 2016 10:07
@Dualse да
Alexander
@Dualse
Nov 09 2016 10:09
@spartaque А почему ты считаешь, что эта связь должна быть у Product? А не у Shipping
Dave
@aios
Nov 09 2016 10:30
@spartaque ты можешь без кода описать задачу которая тебе нужна?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 10:34

@jhaoda или кто-нибудь кто разбирается, а вот такой метод, который я обычно в самой модели хранил, правильнее будет также в сервисном классе хранить или как?

// Получить список контентов для формы,
// отсортированному в порядке возрастания поля sort
public static function getListOrderBySort($order = 'asc')
{
        return self::orderBy('sort', $order)->pluck('name', 'id');
}

?

Dave
@aios
Nov 09 2016 10:34
Если я правильно понял - у нас есть сущности Пользователи, Товары, Доставка и Доставка пользователя.
Доставка пользователя как я понял одним полем отличается. верно?
Alexander
@Dualse
Nov 09 2016 10:34
@aios У него есть функция заказов. Есть возможность для пользователя указывать персональную цену, с помощью пивот, но он пытается указать эту связь у Product (хотя в пивот таблице нету информации о продукте).
Это насколько я понял задачу)
Dave
@aios
Nov 09 2016 10:36
@Dualse значит все я правильно сказал - кто то сетует на всех потому что руки кривые - и это никак не является причиной или следствием. скорее не правильное расположение вещей в ситуации.
Alexander
@Dualse
Nov 09 2016 10:37
@aios Ну вообще, я не понимаю, как связывается доставка с пользователем. Т.к. в Shipping нету user_id
Dave
@aios
Nov 09 2016 10:38
@Dualse ну в доставке по сути должна быть колонка для пользователя и если она есть то применять hasManyThrough
а он и об этом мне кажется не знает -лепит 2 какие то связи непонятные.
ему нужно кастомную цену привязать к доставке
доставка отличается от доставки пользвателя внимание! на одно поле.
и ему нужно что бы в момент выборки была кастомная если она есть - и дефолтная если нет кастомной.
по сути все вокруг этой кастомной и крутится.
projct1
@projct1
Nov 09 2016 10:42
подскажите плз как добавить в текущий реквест фотки, как-будто бы они заливаются через форму?
чтобы \Request::hasFile('photos') и \Request::file('photos') работали как надо?
ща делаю так, но не работает:
Request::merge([
    'photos' => array_map(function(Symfony\Component\Finder\SplFileInfo $photo) {
        return $photo->getRealPath();
    }, File::allFiles('path-to-photos'))
]);
Evgeniy
@Friday14
Nov 09 2016 11:00
Всем привет, хотел поинтересоваться, как считаете нужна ли модель для зависимой таблицы? Пример, есть таблица user c полям id, email, password, и зависимая таблица user_meta с инфой о user'e user_id, name, и т.п Вот стоит ли создавать модель для user_meta, или сделать связь в модели User и работать только с ней?
KarmaBot
@KarmaBot
Nov 09 2016 11:00
@Friday14, ну рассказывай. Как жизнь? :)
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 11:05
@Friday14 я бы сделал модель, как именно делать правильно - не могу сказать.
Igor Markin
@markinigor
Nov 09 2016 11:05
@Friday14 без модели данные в бд чем заносить будешь? DB::insert udate delete? Или у тебя сторонний класс будет отвечать за маппинг данных в бд?
Alexander
@Dualse
Nov 09 2016 11:05
@igorvdonsk Ну так он же написал, что через модель User
Evgeniy
@Friday14
Nov 09 2016 11:06
@Nur777 @igorvdonsk спасибо товарищи
KarmaBot
@KarmaBot
Nov 09 2016 11:06
Спасибо (+1) для @Nur777 принято! Текущая карма +14.
Спасибо (+1) для @igorvdonsk принято! Текущая карма +14.
Igor Markin
@markinigor
Nov 09 2016 11:07
@Dualse Ну в модели юзер он будет то работать с таблицей users, данные в другую таблицу придется вставлять все равно чем-то другим, не элоквентом. Вопрос чем
Vladimir Studenikin
@enjame
Nov 09 2016 11:09
@igorvdonsk, дак проще элеквентом заносить, а значит создавать модель
Alexander
@Dualse
Nov 09 2016 11:10
@igorvdonsk То есть в связанную таблицу нельзя добавить данные через текущую модель?
Vladimir Studenikin
@enjame
Nov 09 2016 11:11
@Dualse не знаю как без неё, не вижу проблемы в создании модели)
Igor Markin
@markinigor
Nov 09 2016 11:14
@Dualse добавить можно все и везде, вопрос в том каким инструментом он будет заносить данные в таблицу, на которую не собирался делать элоквент модель
Alexander
@spartaque
Nov 09 2016 11:17
This message was deleted
Zakhar Morozov
@fortael
Nov 09 2016 11:18
Ребят, тут в 5.3 пытаюсь через vue подключится к api, выдает ошибку: TypeError: str.replace is not a function(…) на обычное Vue.http.get('/api/user').then(function (data) { console.log(data); });
Alexander
@spartaque
Nov 09 2016 11:20
@Dualse Ее в принципе можно сделать и в Shipping, но это получается нужно во всех местах писать
$products = Product::with(['shipping', 'shipping.custom'=> function($q) use ($user_id) { $q->where('user_id', $user_id); return $q; }])
?
@Dualse Нельзя ли как то передать $user_id в метод связи custom_shipping() что бы постоянно не использовать кложуру для этого?
Alexander
@Dualse
Nov 09 2016 11:24
@igorvdonsk Ну к примеру таким образом:
$post->comments()->save($comment);
Igor Markin
@markinigor
Nov 09 2016 11:31
@Dualse ну это прекрасно работает когда используешь элоквент, вопрос то человек задавал можно ли без элоквента работать. Вот как ты сохранишь данные в бд если у тебя не будет класса Comments и соответсвтенно связи HasMany(Comments::class) ?
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 11:32
@igorvdonsk через DB::insert
Alexander
@Dualse
Nov 09 2016 11:32
@igorvdonsk Хмм... Не подумал об этом
Igor Markin
@markinigor
Nov 09 2016 11:33
@Nur777 Та мне то зачем это, я у человека и спрашивал, чем он будет добавлять данные в бд
:point_up: 9 ноября 2016 г., 14:05
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 11:33
@igorvdonsk аа, excuse me :)
Dave
@aios
Nov 09 2016 11:40
@spartaque что бы не использовать кложуру - делается smartScope - либо по другому расположи данные.
Vladimir Studenikin
@enjame
Nov 09 2016 11:41

Мужики, есть тут кто шарит за серъёзные запросы в eloquent? вопрос следующего характера:

$objAllObject = Object::whereIn('category_id', $listCategoryId)->with(
        array(
            'coordinate', 
            'category.calculations', 
            'objects_attr_value' => function($query) {
                return $query->join('objects_attrs', 'objects_attr_values.attr_id', 'objects_attrs.id');
                }
            )
        )->get();

я могу присобачить без перебора форычем, вместо дефолтных индексов в получаемых 'objects_attr_value' , ассоциативный ключ, которым должна являться переменная в таблице, получаемой в join`e?

join('objects_attrs', 'objects_attr_values.attr_id', 'objects_attrs.id');

я перебрал ручками это, но хотелось бы знать, может есть метод более,так сказать, адекватный)

т.е. подобного вида получить массив:

array(
     'objects_attr_value' => array(
            'objects_attrs.display_name' =>array(
                   'id' и т.д. 
            )
    )
)
Dave
@aios
Nov 09 2016 11:47
@enjame а join это принципиальное или других вариантов просто не шаришь?
Ivan
@Hunternnm
Nov 09 2016 11:48
@enjame это у тебя типа EAV?
Vladimir Studenikin
@enjame
Nov 09 2016 11:48
@aios если есть варианты, хотел бы услышать)
Dave
@aios
Nov 09 2016 11:48
@Hunternnm хуEAV
это у него
@enjame построй Eager.Loading
@enjame у тебя есть связь в которой еще связь
Ivan
@Hunternnm
Nov 09 2016 11:49
@aios я аж успел возмутиться
Dave
@aios
Nov 09 2016 11:49
так вот делается это with(['object_attrs.object_attr_values']
@enjame В том что ты кинул - ты мало того что цепляешь значения атрибутов к их кеям - а не наоборот допустим. так еще и в EXISTS подзапросе создаешь JOIN
просто гений архитектуры.
@Hunternnm xD
@Hunternnm ты главное не бомби))) сегодня двух бомбящих в этом чате не потерпят)
Vladimir Studenikin
@enjame
Nov 09 2016 11:51
у меня беда в том что каждый объект имеет свои значения атрибутов, а атрибуты присвоены к категории объекта :)
Dave
@aios
Nov 09 2016 11:51
@enjame в чем проблема?
Ivan
@Hunternnm
Nov 09 2016 11:51
@aios ну я вчера отрывался) сегодня ты заступил?
Dave
@aios
Nov 09 2016 11:51
@Hunternnm пост сдал пост принял
@enjame категория -> атрибуты -> их значения -> продукты.
и так же наоборот
продукты -> атрибуты ->Категория 
                                    |
                                    v  
                       их значения
This message was deleted
Vladimir Studenikin
@enjame
Nov 09 2016 11:53
)
забей
я понял
Dave
@aios
Nov 09 2016 11:53
@enjame вот и прекрасно.
короче это нарисовать проще - чем представить
Цена в вс-пт: 18500/сутки
они там на голову упали?
Vladimir Studenikin
@enjame
Nov 09 2016 11:56
:D
Dave
@aios
Nov 09 2016 11:56
это сочи?
Vladimir Studenikin
@enjame
Nov 09 2016 11:56
Ленинградская обл)
Dave
@aios
Nov 09 2016 11:57
Другой конец света.
прости господи..
Vladimir Studenikin
@enjame
Nov 09 2016 11:57
название домика видел?) тут они все такие ))
Dave
@aios
Nov 09 2016 11:57
писец 200$ за ночь.
в донецке на эти бабосы можно накормить, напоить и снять девочек 5 парням.
@enjame Абрикосовый домик №9
ты про это?
Vladimir Studenikin
@enjame
Nov 09 2016 11:59
ага)
fakefakefake12
@fakefakefake12
Nov 09 2016 11:59
ребят. как правильно передать файл в контроллер. использую vuejs.
передаю через FormData()
Dave
@aios
Nov 09 2016 11:59
http://ready.74pro.club/images/photos/tualet_na_1_etazhe_abrikosovogo_doma_9_221_1920_1024_80.jpg
вот это 18500 в сутки..
просто сука посмотрите на это...
Ivan
@Hunternnm
Nov 09 2016 11:59
@aios заверни, не оффтоп же...
Ругаться будут
Vladimir Studenikin
@enjame
Nov 09 2016 12:00
тих тих) щас задудосят мой домен)
Dave
@aios
Nov 09 2016 12:00
@Hunternnm я вас люблю а ули толку.
@Hunternnm всмысле какая разница заверну или нет - дома дешевле становится не собираются...
Vladimir Studenikin
@enjame
Nov 09 2016 12:01
да не, там так то дома нормальные, но не стоят они того, согласен)
Arsen Soroka
@arsen-s
Nov 09 2016 12:02
@fakefakefake12 https://gitter.im/vuejs-ru/Discussion сюда пиши
Ivan
@Hunternnm
Nov 09 2016 12:02
https://makler.md/ru/real-estate/real-estate-for-rent/apartments-for-rent#list&currency_id=5&list=detail курс 14,5 к доллару
смотрим люкс
fakefakefake12
@fakefakefake12
Nov 09 2016 12:03
@arsen-s спасибо. ну вопрос и к часте лавры тоже относился :D
KarmaBot
@KarmaBot
Nov 09 2016 12:03
Спасибо (+1) для @arsen-s принято! Текущая карма +119.
Dave
@aios
Nov 09 2016 12:03
делим на 2700
получаем количество долларов
Arsen Soroka
@arsen-s
Nov 09 2016 12:03
@fakefakefake12 вопрос относится к JS, и там тебе быстрее помогут
Dave
@aios
Nov 09 2016 12:05
@enjame короче адаптируй)
нашел кому что адаптировать
Vladimir Studenikin
@enjame
Nov 09 2016 12:12
@aios, спасибо, буду перепиливать
KarmaBot
@KarmaBot
Nov 09 2016 12:12
Спасибо (+1) для @aios принято! Текущая карма +262.
projct1
@projct1
Nov 09 2016 13:31
команда db::seed не работает чтоль на продакшене?
выполняю на продакшене php artisan migrate:refresh --seed --force и тока миграции отрабатывают
projct1
@projct1
Nov 09 2016 13:39
верней в миграциях не отрабатывает
    public function down()
    {
        Schema::dropIfExists('colors');
    }
Ilnur Shaykhutdinov
@Nur777
Nov 09 2016 13:47
@rorc Не могу понять тебя, в миграциях не отрабатывают seeders что-ли у тебя?
projct1
@projct1
Nov 09 2016 14:36
@Nur777 разобрался, у меня внутренний косяк был)
Ari Kaiy
@arikaiy
Nov 09 2016 14:56
Привет, всем. Когда будет следующий LTS релиз?
KarmaBot
@KarmaBot
Nov 09 2016 14:56
@odoveiz, здравствуй.
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 14:58
Подскажите, пож, как реализовать аутентификацию по ключу. Т.е. пользователь регится по емэйлу и паролю, ему присваивается токен и заносится в базу. Потом логинится, при этом сессия не создается, а проверка пользователя идет по этому токену. Я уже запутался.
Arsen Soroka
@arsen-s
Nov 09 2016 14:58
@MikhailMatsuyev копай в сторону JWT
@MikhailMatsuyev вот и пакетик заодно https://github.com/irazasyed/jwt-auth-guard
Andrei Sosnov
@atehnix
Nov 09 2016 14:59
@odoveiz в июне 2017 (5.5 LTS)
Это по плану. Но фактически, наверняка опять до августа дотянут)
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:01
@arsen-s а это я видел. Я не понимаю как реализовать. Может ссылка на пример есть?
Ivan
@Hunternnm
Nov 09 2016 15:01
@atehnix а 5,4?)
Andrei Sosnov
@atehnix
Nov 09 2016 15:02
@Hunternnm через месяц-полтора. Опять же если по плану)
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:02
@arsen-s Я так понимаю нужно полностью переписывать логин и регистрацию пользователей с учетом этого пакета?
Arsen Soroka
@arsen-s
Nov 09 2016 15:03
нет, не полностью
поправить метод login, register + добавить middleware
с фронта передеавай в хедере
Authorization: 'Bear' + token
а этот токен храни в localStorage, получишь ты его з метода Auth::attepmt
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:05
@arsen-s А нет случайно мануала? А то на словах понятно вроде, а как к делу приступаю сразу вопросы.
am0nshi
@am0nshi
Nov 09 2016 15:06
@arsen-s ой спасибо, мне это предстоит на досуге :) еще не начал гуглить, а вы тут как раз вовремя))
суть должна быть понятна
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:12
@arsen-s Тяжеловато воспринимается, но спасибо.
KarmaBot
@KarmaBot
Nov 09 2016 15:12
Спасибо (+1) для @arsen-s принято! Текущая карма +120.
Arsen Soroka
@arsen-s
Nov 09 2016 15:13
@MikhailMatsuyev что у тебя на фронте?
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:15
@arsen-s У меня только все из коробки. Из дополнительного только возможность регистрации добавлена. Я вот думаю, можно ли обойтись только этим?
Arsen Soroka
@arsen-s
Nov 09 2016 15:15
так, просто уточню
у тебя API?
и что значит все из коробки, из какой коробки? и ты не ответил что у тебя на фронте
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:17
@arsen-s Вот часть задания:Написать Restful API для сайта с помощью которого пользователь может управлять своими плейлистами, основные возможности: Просмотр списка плейлистов, удаление плейлиста, просмотр песен по плейлисту, удаление песни с плейлиста, добавление песни в лист (заранее известную песню, т.е. ее не нужно предварительно тянуть с сайта). Авторизация пользователя проводить по ключу который должен передавать в заголовке запроса. Методы для выполнения только объявить, но не реализовывать для экономии времени, реализовать только авторизацию по ключу.
При этом сессия при логине пользователя не должна создаваться. А на фронте что в смысле (я не совсем понимаю).
Arsen Soroka
@arsen-s
Nov 09 2016 15:18
значит jwt твой путь
@MikhailMatsuyev Vuejs, ember, angular, react?
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:18
@arsen-s Ничего(
@arsen-s только токен передавай через хедер а не через параметры
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:21
@arsen-s вот именно последнее я и реализовал. Но я не пойму вот что, на запросы отдается JSON. Что с ним делать, нужно же чтобы все через браузер и html шло. Как тут быть?
Arsen Soroka
@arsen-s
Nov 09 2016 15:21
ладно, и если что то не понимаешь, попробуй лучше погуглить, в одной статьи ответы на все вопросы не найдешь
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:22
@arsen-s я уже неделю ищу и ничего, везде в общих словах только.
Arsen Soroka
@arsen-s
Nov 09 2016 15:22
@MikhailMatsuyev с сервера ты должнен возвращать только даные а не html(ну это в идеале)
а на фронте должен генерироваться html с этих данных
Mikhail Matsuyev
@MikhailMatsuyev
Nov 09 2016 15:23
@arsen-s Т.е. для этой генерации и нужны JS Фрэймворки?
Arsen Soroka
@arsen-s
Nov 09 2016 15:23
они облегчают жизнь разработчикам
можно это делать и на jquery - но это ад
JhaoDa
@jhaoda
Nov 09 2016 15:40

@Dualse

погодь, выйду посмеюсь, умник.

Беваре!

Alexey
@ralexl
Nov 09 2016 15:41
Привет всем
KarmaBot
@KarmaBot
Nov 09 2016 15:41
@ralexl даров!
Alexey
@ralexl
Nov 09 2016 15:42
Lara 5.3 Win10
Storage::disk('public')->put( "тест" , 'sds');
PHP warning: file_put_contents(XXXXXXXXXXXXXXXXX\storage\app\public): failed to open stream: No such file or directory in XXXXXXXXXXXXXXXXXv\vendor\league\flysystem\src\Adapter\Local.php on line 127
запускал в tinker
почемута русские имена файлов не проходят
подскажет кто что нибудь?
Ivan
@Hunternnm
Nov 09 2016 15:44

почемута

Русский язык на тебя обижен

Alexey
@ralexl
Nov 09 2016 15:47
@Hunternnm это может быть, а по делу?
Ivan
@Hunternnm
Nov 09 2016 15:47
@ralexl а с расширением та же ошибка?
Alexey
@ralexl
Nov 09 2016 15:49
@Hunternnm какое расширение??? 1 параметр имя файл 2 контекст
Ivan
@Hunternnm
Nov 09 2016 15:50
@ralexl в имени файла расширение попробуй добавить. .txt к примеру
Alexey
@ralexl
Nov 09 2016 15:51
@Hunternnm не катит, на английском берет имена без проблем. Русские символы не понимает
Ivan
@Hunternnm
Nov 09 2016 15:51
@ralexl хз, попробовал у себя - норм всё. 10-ка, 5,3
Alexey
@ralexl
Nov 09 2016 15:53
@Hunternnm пишу так file_put_contents('тест', 'sdsd'); работает
Storage::disk('public')->put( "тест" , 'sds'); нет
masati
@masati
Nov 09 2016 15:56
здравствуйте! подскажите, пожалуйста, где можно почитать про запрет updated_at при обновлении модели? в модели моего приложения $timestamps=false, а админка пытается при обновлении записи через форму обновить несуществующее поле
KarmaBot
@KarmaBot
Nov 09 2016 15:56
@masati, здравствуй.
JhaoDa
@jhaoda
Nov 09 2016 15:56
@masati ну так админка игнорит это поле, видимо, и обновляет поле сама
masati
@masati
Nov 09 2016 15:57
как админке сказать, чтобы она не пыталась его обновлять?
у меня поля-то нет в базе. соответственно, вываливается ошибка
Роман Сохарев
@greabock
Nov 09 2016 15:59
ну дык ты пиши создателю админки ёмаё
masati
@masati
Nov 09 2016 15:59
эммс, интересный совет
я не в ту комнату попала, да?
am0nshi
@am0nshi
Nov 09 2016 16:00
@masati каков вопрос, таков и ответ
Arsen Soroka
@arsen-s
Nov 09 2016 16:01
@masati если у тебя owl то сюда пиши https://gitter.im/LaravelRUS/SleepingOwlAdmin
JhaoDa
@jhaoda
Nov 09 2016 16:01
@masati ну ты бы сказала, какая у тебя админка
masati
@masati
Nov 09 2016 16:01
@arsen-s , спасибо. остальные проявили редкую доброжелательность.
KarmaBot
@KarmaBot
Nov 09 2016 16:01
Спасибо (+1) для @arsen-s принято! Текущая карма +121.
Роман Сохарев
@greabock
Nov 09 2016 16:01
Ну а как еще? Во-первых: мы даже не знаем, что это за админка. Во-вторых: даже бы если знали, то вряд ли кто-то прямо сейчас полез бы ковыряться в сорцах. В-третьих, если нужно быстрое решение, то может уже просто создать таймштапы?
JhaoDa
@jhaoda
Nov 09 2016 16:02
@masati прикинь, админок-то БОЛЬШЕ, чем одна в мире. И даже на ларавел!
masati
@masati
Nov 09 2016 16:02
@jhaoda , прикинь, дверью ошиблась
JhaoDa
@jhaoda
Nov 09 2016 16:03
Ну т.е. это совинная админка, но нам этого знать не обязательно :)
masati
@masati
Nov 09 2016 16:03
извините, что побеспокоила
Роман Сохарев
@greabock
Nov 09 2016 16:03
Да она просто думала, что в совином чате
Промахнулась... а тут мужики... с пивом... в трусах... и крошки от чипсов на пузе
JhaoDa
@jhaoda
Nov 09 2016 16:06
И кальмары в бороде
masati
@masati
Nov 09 2016 16:06
не, бородатые кальмары с крошками в трусах, плавающие в пиве :Р
Ivan
@Hunternnm
Nov 09 2016 16:08
Ну про крошки в трусах обидно было
Это же... неприятно. Колется
Кто ел чипсы/сухари за компом поймет...\
Роман Сохарев
@greabock
Nov 09 2016 16:09
^ товарищ знает, о чем говорит. Опытный...
masati
@masati
Nov 09 2016 16:11
а вы видели кальмаров в трусах?))) я канеш понимаю, что "крошки" могут быть только от чипсов, а такие себе милашки-малышки в одних трусах и с запасом пива - это для опытных товарищей это нонсенс)
ладно, не будьте такими буками. а то захотелось от страха прям сбежать. набросились, понимаешь)
Nuzsk
@Nuzsk
Nov 09 2016 16:13
это оффтоп?
masati
@masati
Nov 09 2016 16:15
он, родимый. еще раз приношу свои извинения
Роман Сохарев
@greabock
Nov 09 2016 16:15
masati
@masati
Nov 09 2016 16:16
злые вы все же. сами про кальмаров начали
Andrei Sosnov
@atehnix
Nov 09 2016 16:17
@masati может он на всякий случай спросил, мало ли тоже дверью ошибся. :)
JhaoDa
@jhaoda
Nov 09 2016 16:17
@masati а ты начала с того, что не сказала, про какую админку речь
Да и потом не сказал, мы не уверены, что речь про сову :)
Роман Сохарев
@greabock
Nov 09 2016 16:18
забейте уже... из пустого в порожнее
JhaoDa
@jhaoda
Nov 09 2016 16:18
Но злые мы, логично
Ivan
@Hunternnm
Nov 09 2016 16:23
Я вообще второй день видеоролики монтирую
Матом ругаюсь
Alexey
@ralexl
Nov 09 2016 16:32
Нашел в чем проблема, по моему вопросу. Если кому интересна отпишу.
Ivan
@Hunternnm
Nov 09 2016 16:35
@ralexl да пиши сюда что было то
В чате история сохраняется
Alexey
@ralexl
Nov 09 2016 16:36
Беда в том что кодировка файловой системы winows cp1251
JhaoDa
@jhaoda
Nov 09 2016 16:38
@ralexl и что же это за файловая система?
Alexey
@ralexl
Nov 09 2016 16:39
перед запитсью файла (\vendor\league\flysystem\src\Filesystem.php вызываеться строка 95) вызываеться функция Util::normalizePath($path)
каторая если видит русские символы в cp1251 просто их удаляет.
ntfs
JhaoDa
@jhaoda
Nov 09 2016 16:40
@ralexl у ntfs кодировка ср1251? Вот это новости... и давно?
Ivan
@Hunternnm
Nov 09 2016 16:40
Я ща чаем подавился
Не надо так...
JhaoDa
@jhaoda
Nov 09 2016 16:41
Ну раз на самом дклабе сказали, тогда конечно...
А мы-то, дураки, MSDN читаем и иже с ним...
Alexey
@ralexl
Nov 09 2016 16:44
пишу в utf-8 file_put_contents('тест', 'sdsd'); на выходе файл тест
Винда с тобой не согласна, как видишь.
Alexey
@ralexl
Nov 09 2016 16:47
у тебя какая у меня Win 10 Домашняя для одного языка
JhaoDa
@jhaoda
Nov 09 2016 16:48
Опустим же завесу милосердия над этой сценой...
Alexey
@ralexl
Nov 09 2016 16:49
cmd набери команду chcp
что выдаст
У меня текущая кодовая страница: 1251
Alexey
@ralexl
Nov 09 2016 17:16
Да я неправ. NTFS кодировка UTF-16. Но php почему то нормально работает с диском у меня через кодировку cp1251. Не знаю почему. Вот у человека та же проблема http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=88936
am0nshi
@am0nshi
Nov 09 2016 18:44
@ralexl зачем это в топике по ларавели?
Alexey
@ralexl
Nov 09 2016 19:16
@am0nshi выше была описана проблема. Разобрался. Работал с командами Laravel. В команде не мог сохранить через Storage файл с русским именем. Оказалось что у меня консоль работала в кодировке cp1251. Превёл консоль в utf-8. Все заработала. Все спасибо. Вопрос закрыт.
JhaoDa
@jhaoda
Nov 09 2016 19:20
Ну хоть ntfs больше не виновата :)
Alexey
@ralexl
Nov 09 2016 19:22
@jhaoda Да блин люди приходят сюда с реальными проблеммами, вы цепляетесь к словам и стебетесь ....
JhaoDa
@jhaoda
Nov 09 2016 19:22
@ralexl проблема с кодировкой к ларавел не относится, согласен?
Alexey
@ralexl
Nov 09 2016 19:23
@jhaoda Написал выше, что да
JhaoDa
@jhaoda
Nov 09 2016 19:23
@ralexl тогда какая же это «реальная проблема»?
Alexey
@ralexl
Nov 09 2016 19:24
@jhaoda снова стебешься :)
Pavel
@jazzfog
Nov 09 2016 19:32
Привет. Подскажите про разрешение зависимостей - допустим я создаю класс App::make('Foo') в у которого есть зависимость на другой класс Bar, которому для создания нужны некие параметры. Я вижу что метод make умеет принимать массив параметров, но я не могу найти в документации как эти параметры использовать внутри App::bind(). Вопрос - как их получить и вообще правильно ли такое делать?
KarmaBot
@KarmaBot
Nov 09 2016 19:32
О! @jazzfog! Сто лет не виделись!) Как жизнь молодецкая? Рассказывай :)
JhaoDa
@jhaoda
Nov 09 2016 19:49
@jazzfog т.е. ты хочешь при создании Foo предать параметры, нужные его классу-зависимости Bar?
Pavel
@jazzfog
Nov 09 2016 19:50
Ну была такая идея, что теориетически может понадобиться такое
Я недавно начал Laravel изучать, ещё честно говоря, не понял жизненный ли это случай
Но просто из моей практики - часто зависимости это не просто какие-то объекты, а как-то предварительно сконфигурированные.
Dave
@aios
Nov 09 2016 19:55
@jazzfog В смысле? Обструкции?
JhaoDa
@jhaoda
Nov 09 2016 19:56
@jazzfog ты если хочешь сколь-нибудь быстрого ответа, то ник указывай кому ты пишешь
@jazzfog это плохая идея. Предварительно сконфигурированные объекты надо конфигурировать предварительно
Evgeny
@seedofpanic
Nov 09 2016 19:57
Привет, народ, нужен разработчик на допилы веб сервиса периодические, может интересно кому?
KarmaBot
@KarmaBot
Nov 09 2016 19:57
@seedofpanic, привет, как настроение?
Pavel
@jazzfog
Nov 09 2016 19:59
@jhaoda Ну я у сообщества спрашивал, отвечал соответственно единственному мне ответившему. Но ок, буду указывать ник =)
JhaoDa
@jhaoda
Nov 09 2016 20:00
@jazzfog для безадресных сообщений не показываются уведомления, а я не втыкаю в чат каждую минуту
Pavel
@jazzfog
Nov 09 2016 20:01
@jhaoda Понял, спасибо.
KarmaBot
@KarmaBot
Nov 09 2016 20:01
Спасибо (+1) для @jhaoda принято! Текущая карма +1298.
JhaoDa
@jhaoda
Nov 09 2016 20:01
@seedofpanic в группе ВК писал? Вижу, не писал. Проект, надеюсь, на ларавел?
Evgeny
@seedofpanic
Nov 09 2016 20:07
да на ларвел, в группе не писал
JhaoDa
@jhaoda
Nov 09 2016 20:15
@seedofpanic так напиши
Evgeny
@seedofpanic
Nov 09 2016 20:17
ну мне тут уже ответили, напишу если еще понадобится, спасибо
KarmaBot
@KarmaBot
Nov 09 2016 20:17
@seedofpanic, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
am0nshi
@am0nshi
Nov 09 2016 20:21
Как стораджу с 'driver' => 'local', задать префикс для урлы вместо storage?
If you are using the local driver, this will typically just prepend /storage to the given path and return a relative URL to the file.
как-то это не сильно логично
JhaoDa
@jhaoda
Nov 09 2016 20:22
@am0nshi никак
am0nshi
@am0nshi
Nov 09 2016 20:22
@jhaoda а как решаются задачи вроде кастомного cdn и прочего? пишется полностью свой класс диска?
Cyber Xucyc
@Cyber-host
Nov 09 2016 20:23
/storage/../ так не заканает?)
JhaoDa
@jhaoda
Nov 09 2016 20:23
@am0nshi кастомный cdn на локале?:)
am0nshi
@am0nshi
Nov 09 2016 20:23
@jhaoda ну пока это просто папка в паблике, но руки дойдут - будет полноценный цдн. не хочется пока все в сторадж пихать, у меня там другого порядка файлы
JhaoDa
@jhaoda
Nov 09 2016 20:24
@am0nshi задача решается внимательным чтением документации
am0nshi
@am0nshi
Nov 09 2016 20:24
@jhaoda ты про flysystem-драйвера?
JhaoDa
@jhaoda
Nov 09 2016 20:25
@am0nshi если ты опустишь глаза чуть-чуть ниже, то увидишь огромную красную плашку в доке
@am0nshi «не хочется» это уже другой вопрос
am0nshi
@am0nshi
Nov 09 2016 20:26
@jhaoda это получается что файлы должны лежать за пределами открытого паблика, и должна быть проставлена символическая ссылка. окей. но это не отменяет того, что любой local-драйвер ссылается не на корень паблика, а на подпапку storage
@jhaoda я думаю тебе будет интересно. я на работе начал батл - лара/люмен против симфони на микроядре (пишем микросервисы на сокетах). где-то через неделю подкину цифры что получилось в итоге
JhaoDa
@jhaoda
Nov 09 2016 20:32
@am0nshi нет, не будет интересно
Cyber Xucyc
@Cyber-host
Nov 09 2016 20:32
вот так вот)
projct1
@projct1
Nov 09 2016 21:10
а можно как-нибудь сделать так, чтобы при обращении к классу с алиасом (который в конфиге прописан), не надо было писать слеш в самом начале?
а то неудобно и некрасиво писать каждый раз \Cart::add()
а use Cart тоже не айс из-за одного слеша...
JhaoDa
@jhaoda
Nov 09 2016 21:36
@rorc можно, доку по РНР почитай, подумай
Pavel
@jazzfog
Nov 09 2016 21:45
Ещё вопрос, куда принято класть классы бизнес-логики вашего приложения? Просто создать папку app/ProjectName и всё(1) держать там - это идеологически правильный подход или нет?
(1) Кроме сугубо laravel-сущностей, вроде сервис провайдеров, миграций и т.д.
Dave
@aios
Nov 09 2016 21:47
Тут все от тебя зависит
@jazzfog если один работаешь то как удобно
от того что логика будет лежать в папах Services Traits Observers
ниче не изменится
кроме восприятия.
Pavel
@jazzfog
Nov 09 2016 21:49
@aios А какие есть варианты? Эту структуру можно воссоздать в одной папке под названием своего проекта...
Dave
@aios
Nov 09 2016 21:49
Посмотри статью на гисте @greabock он там тентакли демонстрировал
мне не зашло
хотя структура прикольная
я лично создавал папку Modules и там воссоздавал типо то что нужно если нужно
Events, Migrations, Providers, и всю остальную которая относится к модулям.
Pavel
@jazzfog
Nov 09 2016 21:51
@aios Понятно, спасибо!
KarmaBot
@KarmaBot
Nov 09 2016 21:51
Спасибо (+1) для @aios принято! Текущая карма +264.
Dave
@aios
Nov 09 2016 22:43
@Butochnikov закинул месседж в группу.