These are chat archives for LaravelRUS/chat

9th
Mar 2017
Soprun Vladislav
@vlsoprun
Mar 09 2017 05:31
Всем доброго утра :smile:
KarmaBot
@KarmaBot
Mar 09 2017 05:31
@vlsoprun, здравствуй.
Anton Vorontsov
@symbios-zi
Mar 09 2017 05:48
@SCIF
Объясни
И лучше в оффтопа
rammtw
@rammtw
Mar 09 2017 06:35
Всем привет, как в Homestead развернуть среду с php 5.6?
KarmaBot
@KarmaBot
Mar 09 2017 06:35
@rammtw, привет, как настроение?
Юрий
@sawerus
Mar 09 2017 06:39
@rammtw так же как и в ubuntu полагаю.
vagrant ssh и вперед.
Alexander Zhuravlev
@SCIF
Mar 09 2017 07:49
@symbios-zi , он тупил с резолвингом путей, если инклудю файлики в поддирках. Решилось добавлением опции {relativeUrls: true}. Причём вебпак это компилит нормально, а гульп — нет
warmobigames
@warmobigames
Mar 09 2017 08:54
 public function upload_file(Request $request)
    {
        if ($request->hasFile('photo')) {
            echo $request->photo->extension();
        }

        return view('upload_file');
    }

вью:

{{ Form::open(array('url' => 'upload_file')) }}
<?php
echo Form::file('photo');
?>
<input type="submit" value="Загрузить">
{{ Form::close() }}

Почему ничего не выводится, когда загружаю файл?

У меня точно получится!
Soprun Vladislav
@vlsoprun
Mar 09 2017 08:56
Ну почти... Мы верим в тебя !!
warmobigames
@warmobigames
Mar 09 2017 08:56
КАК ЭТО РАБОТАЕТ?
Ivan
@Hunternnm
Mar 09 2017 08:56
@warmobigames оформи код
KarmaBot
@KarmaBot
Mar 09 2017 08:56
@warmobigames, чтобы код легко читался, поставь перед ним и после него по строке с тремя обратными апострофами (символ ` на клавише с буквой «Ё»).
Узнать больше про оформление сообщений можно в справке по Markdown (кнопка M↓ внизу справа).
Кстати, свои сообщения здесь можно редактировать... ;)
warmobigames
@warmobigames
Mar 09 2017 08:58
Я справилься
Soprun Vladislav
@vlsoprun
Mar 09 2017 08:59
@warmobigames Вопросы:
  1. какого [не цензурное слово] <?php echo Form::file('photo'); ?>
  2. А что ты ожидаешь увидеть в echo Form::file('photo');
warmobigames
@warmobigames
Mar 09 2017 08:59
blob
@vlsoprun 2 - это
alexspi
@alexspi
Mar 09 2017 09:00
@vlsoprun :trollface: фоточку :trollface:
warmobigames
@warmobigames
Mar 09 2017 09:00
@vlsoprun А как должно быть?
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:00
@warmobigames 5 сек
Igor Markin
@markinigor
Mar 09 2017 09:00
@warmobigames а как в доке написано?
warmobigames
@warmobigames
Mar 09 2017 09:00
@markinigor Вот так и написано, я копипастил
alexspi
@alexspi
Mar 09 2017 09:00
@markinigor не богохульствуй
warmobigames
@warmobigames
Mar 09 2017 09:01
@alexspi Та чес слово
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:01
@warmobigames
 {!! Form::open(['route' => 'backend.account.import.send', 'files' => true, 'class' => 'ui form', 'method' => 'POST', 'enctype' => 'multipart/form-data']) !!}
warmobigames
@warmobigames
Mar 09 2017 09:04
@vlsoprun Ну, эта строчка у меня такая же
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:04
@warmobigames и [нецензурное слово] не используй <?php echo ... ?>, это же [нецензурное слово]
@warmobigames Серьезно ? Прям такая же ?
warmobigames
@warmobigames
Mar 09 2017 09:05
echo Form::file('image'); - по доке
echo Form::file('photo');
Igor Markin
@markinigor
Mar 09 2017 09:05
@warmobigames а ты ниже прочти
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:05
@warmobigames :neutral_face:
@warmobigames :point_up: 9 марта 2017 г., 12:01 !!!!
warmobigames
@warmobigames
Mar 09 2017 09:06
Note: The form must have been opened with the files option set to true. - та про это я понял уже
@warmobigames и [нецензурное слово] не используй <?php echo ... ?>, это же [нецензурное слово]
Я про это вот, у меня ж по доке
Юрий
@sawerus
Mar 09 2017 09:06
@warmobigames ну и Form::submit('Click Me!') тогда уж до кучи. Если уж делать то по коллективу все или без него
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:06
@warmobigames ааа.
@warmobigames ты laravelcollective/html используешь ?
warmobigames
@warmobigames
Mar 09 2017 09:07
@vlsoprun Да
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:09
@warmobigames нук, линкони свой код
warmobigames
@warmobigames
Mar 09 2017 09:10
Юрий
@sawerus
Mar 09 2017 09:10
@vlsoprun хм... может не надо )
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:10
@sawerus :satisfied: ты прав
vava
@vaz9
Mar 09 2017 09:10
подскажите плз, есть готовое решение платформа (воронка) поддержки пользователей. + само собой база знаний с поиском по ней.
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:11
@warmobigames Бро я не ясновидящий, мне нужен "исходный код"
warmobigames
@warmobigames
Mar 09 2017 09:12
@vlsoprun Ну, то что я кидал выше - то весь код, окай, что там, пастебин? Ща
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:13
@sawerus :trollface:
@warmobigames
{!! Form::open([
    'route' => 'backend.account.import.send', // Имя роутера
    'class' => 'ui form', // классы элемента
    'files' => true, <<<<<< !!!
    'method' => 'POST', <<<<<< !!!
    'enctype' => 'multipart/form-data' <<<<<< !!!
]) !!}
warmobigames
@warmobigames
Mar 09 2017 09:16
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:18

@warmobigames ок, что вернет

dd($request->hasFile('photo'));

и

$request->file('photo')
и с фигали чего бы echo $request->photo->extension(); должно работать :satisfied:
Юрий
@sawerus
Mar 09 2017 09:20
надо еще пару раз прочитать ему маны
Soprun Vladislav
@vlsoprun
Mar 09 2017 09:21
@warmobigames короч... Вот пример:
public function method(Request $request)
    {
        if (!$request->hasFile('file')) {
            throw new RuntimeException('File was not uploaded');
        }

        /** @var \Illuminate\Http\UploadedFile $file */
        $file = $request->file('file');

        if (!$file->isValid()) {
            throw new RuntimeException('The file has been uploaded but is not available');
        }

        // 5798c219-e091-4bce-8f86-62c4984a543f.csv
        $name = Uuid::uuid4()->toString() . '.' . $file->getClientOriginalExtension();

        $filePath = storage_path('app' . DIRECTORY_SEPARATOR . $file->storeAs('import', $name));

       // ...
    }
KarmaBot
@KarmaBot
Mar 09 2017 09:21
@vlsoprun, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
warmobigames
@warmobigames
Mar 09 2017 09:25
@vlsoprun Агась, пасиба
rammtw
@rammtw
Mar 09 2017 09:34
ребят кто-нибудь делал аутентификацию в Lumen 5.4?
Алексей
@yelrik
Mar 09 2017 10:20
@rammtw интересный вопрос в чате про Laravel
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 10:21
когда же уже люди перестанут юзать люмен?
Алексей
@yelrik
Mar 09 2017 10:25
@SerafimArts а что с ним не так?
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 10:25
@yelrik он не нужен
Алексей
@yelrik
Mar 09 2017 10:26
@SerafimArts для тех, кого пугает функционал Laravel :)
Alexander
@Dualse
Mar 09 2017 10:26
@yelrik Ну тут на вопросы по Lumen тоже отвечают, хоть и редко
Алексей
@yelrik
Mar 09 2017 10:29
@Dualse в принципе тут можно на любые вопросы отвечать
Alexander
@Dualse
Mar 09 2017 10:31
@yelrik Нет, только связанные с Laravel
Soprun Vladislav
@vlsoprun
Mar 09 2017 10:33
@SerafimArts не нужен lumen ? ))
У меня есть мега-тру генератор restful api который тупо генерирует/кэширует роутеры и открывает контролеры, а они наследуются от ResourceController.php мне тупо не нужен остальной функционал и лара реально была бы излишняя
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 10:33
@vlsoprun 99% вопросов по люмену - как из него сделать лару
Soprun Vladislav
@vlsoprun
Mar 09 2017 10:34
@SerafimArts это да :smile:
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 10:34
проще было бы накатить основной стек и тупо закомменить ненужное
и не иметь себе мозг
что 10 метров на харде, что 20 - разницы не особо
а время сэкономишь
и оп скорости отличий не будет
Soprun Vladislav
@vlsoprun
Mar 09 2017 10:34
@SerafimArts Это слишком легко, нельзя так просто жить! нужна боль, костыли и бубны :smile:
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 10:35
@vlsoprun в тебе проснулся битриксоид?
Soprun Vladislav
@vlsoprun
Mar 09 2017 10:36
@SerafimArts хмм.... Нет ))
BestJob23
@BestJob23
Mar 09 2017 12:39
Всем привет ! Нужен человек на бэк енд ларавел , приступать как можно скорее ... есть свободные гении ?
KarmaBot
@KarmaBot
Mar 09 2017 12:39
Привет, @BestJob23! Проходи, присаживайся. В ногах правды нет :)
Soprun Vladislav
@vlsoprun
Mar 09 2017 12:40
@BestJob23 Удаленка?
BestJob23
@BestJob23
Mar 09 2017 12:40
да
Soprun Vladislav
@vlsoprun
Mar 09 2017 12:41
@BestJob23 Вот тут можешь оставить описание https://vk.com/topic-53758340_28099732
BestJob23
@BestJob23
Mar 09 2017 12:49
Спасибо , попытаю счастье тут пока !
KarmaBot
@KarmaBot
Mar 09 2017 12:49
@BestJob23, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
JhaoDa
@jhaoda
Mar 09 2017 13:11
@BestJob23 ты всё продолжаешь ставить пробелы перед знаками препинания?
bassx1
@bassx1
Mar 09 2017 14:11

Товарищи, добрый день, подскажите, в чем может быть проблема:

есть модель Post в ней

public function categories()
{
        return $this->belongsToMany(Category::class);
}

и код вида

Post::with('categories')->find($id)->toArray()

вызывает ошибку

Type error: Argument 1 passed to Illuminate\Database\Eloquent\Relations\Pivot::__construct() must be an instance of Illuminate\Database\Eloquent\Model, array given

причем категории нормально подгружаются, но именно когда делаю toArray() -- все ломается

KarmaBot
@KarmaBot
Mar 09 2017 14:11
Не узнал тебя, @bassx1. Богатым будешь :)
Ivan
@Hunternnm
Mar 09 2017 14:12
@bassx1 а ты через get и радуйся
bassx1
@bassx1
Mar 09 2017 14:13
@Hunternnm так мне один Post нужен
Ivan
@Hunternnm
Mar 09 2017 14:13
@bassx1 вернее даже не так - выведи через dd что тебе find отдает
bassx1
@bassx1
Mar 09 2017 14:13
делал ->first() -- таже проблема
ну он мне отдает объект Post
т.е. отдает как надо, в нем подгружены категории, вот именно toArray или toJson ломается все
@Hunternnm кстати get тоже так
ларавел сломался?))
Alexander
@Dualse
Mar 09 2017 14:18
@bassx1 Ты хочешь модель конвертировать в массив?
bassx1
@bassx1
Mar 09 2017 14:19
@Dualse ну вообще в json, но разницы нет, что toJson что toArray ломает
Alexander
@Dualse
Mar 09 2017 14:21
@bassx1 Зачем тебе это?
bassx1
@bassx1
Mar 09 2017 14:23
@Dualse в АПИ отдать, обычная же задача
когда мне запрашивают api/posts/1
я хочу вернуть
{
 "id": 1,
  "title": "lorem",
  "categories": [
     {...},
     {...}
   ]

}
короче, сделал rm -rf vendor и потом composer update -- и пофиксилось, понятия не имею что там не так было)
NoViKoFF
@AndrewNovikof
Mar 09 2017 15:23
@bassx1 а зачем ты делаешь toArray при выборке?
Чем тебя не устраивает
return response()->json(Post::with('categories')->find($id))?
S.Vishnevskii
@HeroFirst
Mar 09 2017 15:46

Всем привет, мы тут спорим с товарищем. По реализации хлебных крошек. Один предлагает передавать во вью объект предыдущей вложенности, а другой предлагает писать в сессию наменование заголовка предыдущей вложенности. Будет смешно если никто не верно предложил вариант.

Как правильно реализовать эти хлебные крошки 'buttercrumbs' )

KarmaBot
@KarmaBot
Mar 09 2017 15:46
@NEXT-WEB, ну рассказывай. Как жизнь? :)
Ivan
@Hunternnm
Mar 09 2017 15:50
@NEXT-WEB никто не прав. А если путь из 5 и более пунктов?
Даже 3 хватит чтобы всё сломать по вашей логике
@NEXT-WEB https://github.com/davejamesmiller/laravel-breadcrumbs смотри сырцы
isaiddestroy
@isaiddestroy
Mar 09 2017 16:16

Привет, господа.
Есть много таблиц и связи между ними. Выглядит это вот так http://c2n.me/3IhPcXk.png. Связи настроены, работаю с этим через Eloquent.
Я хочу передавать во view данные, полученные из orders, но не "как есть", а вместе с некоторыми данными из других таблиц. Например, с ролью пользователя roles.value. Пилить во вьюхе что-то типа

@foreach($orders as $order)
  $order->user->role->value

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

KarmaBot
@KarmaBot
Mar 09 2017 16:16
Будь как дома, @isaiddestroy, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
S.Vishnevskii
@HeroFirst
Mar 09 2017 16:19
@Hunternnm да тупанули жестко!
Dmitry
@DmitryChere
Mar 09 2017 16:22
всем привет
подскажите, если я авторизовался с помощью Auth::login($user);, почему авторизация не происходит глобально? то есть, если я перейду на другую страницу то Auth::check() уже вернет false
KarmaBot
@KarmaBot
Mar 09 2017 16:22
Будь как дома, @likeapimp, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 16:24
@DmitryChere потому что ты:
1) не проверил права на сторадж
2) поставил аррей драйвер для сессий
Dmitry
@DmitryChere
Mar 09 2017 16:28
@SerafimArts что за права?
isaiddestroy
@isaiddestroy
Mar 09 2017 16:30
@arsen-s, глянул, спасибо. Но получается, если я хоть немного поменяю структуру БД, то мне придётся также и вьюхи менять. И вместо $order->user->role->value надо будет писать, допустим, $order->user->role->another_model->value. И так в каждой вьюхе. А я хочу получить возможность писать что-то вроде $order->user_role во вьюхе, где user_role уже заранее определено. Разве в этом нет смысла?
Dmitry
@DmitryChere
Mar 09 2017 16:31
@DmitryChere ты имел ввиду права к каталогу?
JhaoDa
@jhaoda
Mar 09 2017 16:32
@DmitryChere потому что Auth::login($user); это не авторизация
Dmitry
@DmitryChere
Mar 09 2017 16:33
@jhaoda аутентификация
Arsen Soroka
@arsen-s
Mar 09 2017 16:33
@isaiddestroy читай про accessors тогда
https://laravel.com/docs/5.4/eloquent-mutators#accessors-and-mutators
тогда прийдется менять в одном месте
а если ты просто хочешь поменять что либо(структуру) в БД и ничего не трогать в коде - то это из раздела фантастики
Dmitry
@DmitryChere
Mar 09 2017 16:35

@jhaoda мне нужно залогинить пользователя

$user = User::where('email', 'mail@gmail.com')->first();
Auth::login($user);
dd(Auth::check()); // true

но на других страницах check() вернет false

Arsen Soroka
@arsen-s
Mar 09 2017 16:36
@DmitryChere попробуй другой драйвер для сессии, например, redis
Dmitry
@DmitryChere
Mar 09 2017 16:38
@arsen-s пробовал file и cookie - одинаково работает
вернее не работает
Arsen Soroka
@arsen-s
Mar 09 2017 16:39
@DmitryChere в каком файле роут обьявлен?
Dmitry
@DmitryChere
Mar 09 2017 16:40
routes/web.php
@arsen-s
Arsen Soroka
@arsen-s
Mar 09 2017 16:42
в кернеле для web прописано StartSession?
Dmitry
@DmitryChere
Mar 09 2017 16:45
@arsen-s
'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            // \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
Arsen Soroka
@arsen-s
Mar 09 2017 16:45
@DmitryChere тогда ставь redis
Dmitry
@DmitryChere
Mar 09 2017 16:50
@arsen-s я думаю без него можно как-то обойтись
неправильно что-то делаю наверное
Arsen Soroka
@arsen-s
Mar 09 2017 16:50
выше писали о правах на storage
Dmitry
@DmitryChere
Mar 09 2017 16:51
@arsen-s на каталог?
Arsen Soroka
@arsen-s
Mar 09 2017 16:51
ага
isaiddestroy
@isaiddestroy
Mar 09 2017 16:51
@arsen-s, о, здорово, спасибо.
Я даже и не думал, что так можно сделать. Буду теперь копать в сторону того, как объединить это с жадной загрузкой.
Dmitry
@DmitryChere
Mar 09 2017 16:51
@arsen-s с правами норм
Arsen Soroka
@arsen-s
Mar 09 2017 16:51
@isaiddestroy доку не всю читаешь? только то что надо в процессе?
Ivan
@Hunternnm
Mar 09 2017 16:53
@arsen-s все так делают. Почти все. Пичаль...
isaiddestroy
@isaiddestroy
Mar 09 2017 16:55
@arsen-s, не совсем. Пару раз прочитал, чтобы всё проиндексировалось в голове, а потом уже обращаюсь к тому, что надо в процессе. Но всё со временем забывается. Доку пора перечитывать, да.
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 17:01
лол
В примере кода сессии закомментироваы
@Dualse это прикол такой, да? =)
Тьфу
@DmitryChere
Ой, всё, чертов моб.гиттер
Больше не буду писать, промахиваюсь
Тыкните плиз топикастера с сессиями за меня, плиз, я не способен
Arsen Soroka
@arsen-s
Mar 09 2017 17:03
блин, не увидел коммент
Dmitry
@DmitryChere
Mar 09 2017 17:04
@arsen-s я раскоментил тот коммент сразу как скинул
и все равно нифига
protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\Session\Middleware\AuthenticateSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
            'throttle:60,1',
            'bindings',
        ],
    ];
вот так сейчас
драйверы пробовал file, cookie, database - результат одинаковый
Arsen Soroka
@arsen-s
Mar 09 2017 17:05
@DmitryChere пробуй что то записать в сессию и получить потом
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 17:06
+
Dmitry
@DmitryChere
Mar 09 2017 17:08
@arsen-s если просто записываю, получаю, ок все
session([
            'oauth_token' => 11,
            'oauth_token_secret' => 22
 ]);

dd(session('oauth_token')); //11
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 17:08
Значит не сессии виноваты
А ты просто ремембер аргумент пропустил
Или что-то такое
Dmitry
@DmitryChere
Mar 09 2017 17:09
@SerafimArts с ним тоже не работает
вот так делаю
$user = User::where('email', 'mail@gmail.com')->first();
Auth::login($user, true);
Kirill Nesmeyanov
@SerafimArts
Mar 09 2017 17:09
Аутх логин $юзер тру
Аааа
Ну надо уже копать глубже
Arsen Soroka
@arsen-s
Mar 09 2017 17:10
@DmitryChere отлично, значит решение проблемы - это ее отсутствие
Dmitry
@DmitryChere
Mar 09 2017 17:10
@arsen-s все бы так отлично было, юзер не логинится то)
Arsen Soroka
@arsen-s
Mar 09 2017 17:11
@DmitryChere а у меня работает почему то
Dmitry
@DmitryChere
Mar 09 2017 17:12
@arsen-s можешь скинуть как ты сделал?
Arsen Soroka
@arsen-s
Mar 09 2017 17:12
$user = User::find($id);
Auth::login($user);
Dmitry
@DmitryChere
Mar 09 2017 17:12
я просто в контроллере это делаю
Arsen Soroka
@arsen-s
Mar 09 2017 17:13
стоп
кажется понял
ты ведь в конструкторе проверяешь залогинен ли юзер, правильно?
Dmitry
@DmitryChere
Mar 09 2017 17:14
нет
<?php

namespace App\Http\Controllers;

use Abraham\TwitterOAuth\TwitterOAuth as Twitter;
use App\User;
use Auth;
use Illuminate\Http\Request;

class MainController extends Controller
{
    public function index()
    {

        $user = User::where('email', 'mail@gmail.com')->first();
        Auth::login($user, true);
        dd(Auth::check());

        return view('main');
    }

    public function dev()
    {
        dd(Auth::check());
    }
}
KarmaBot
@KarmaBot
Mar 09 2017 17:14
@likeapimp, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Arsen Soroka
@arsen-s
Mar 09 2017 17:16
@DmitryChere попробуй еще
$request->user();
auth()->user();
Dmitry
@DmitryChere
Mar 09 2017 17:16
@arsen-s а где попробовать?
Arsen Soroka
@arsen-s
Mar 09 2017 17:17
где угодно
dd($request->user(), auth()->user());
если не прокатит - то я здаюсь
Dmitry
@DmitryChere
Mar 09 2017 17:18
в index() отрабатывает, в dev() возвращает null оба
Ivan
@Hunternnm
Mar 09 2017 17:25
@DmitryChere а ты dev после чего запрашиваешь?
prog-man
@prog-man
Mar 09 2017 17:36

Всем привет.

Как в ларке можно преобразовать коллекцию:

'data' => [
    0 => [
        'local' => 'ru',
        'title' => 'Запись 1'
    ],
    1 => [
        'local' => 'en',
        'title' => 'Post 1'
    ]
]

в:

'data' => [
    'ru' => [
        'title' => 'Запись 1'
    ],
    'en' => [
        'title' => 'Post 1'
    ]
]
KarmaBot
@KarmaBot
Mar 09 2017 17:36
Привет, @prog-man! Проходи, присаживайся. В ногах правды нет :)
Artur Gafurov
@assurrussa
Mar 09 2017 17:37
@prog-man keyBy
prog-man
@prog-man
Mar 09 2017 17:38
@assurrussa сейчас попробую, хотя по-моему уже пробовал.
prog-man
@prog-man
Mar 09 2017 17:42
@assurrussa да, работает, спасибо.
KarmaBot
@KarmaBot
Mar 09 2017 17:42
Спасибо (+1) для @assurrussa принято! Текущая карма +67.
prog-man
@prog-man
Mar 09 2017 18:20

Делаю обычную выборку данных модели:

$post = Post::with('comments')->findOrFail($id);

return response()
        ->json([
            'post' => $post
        ])

получаю вывод:

post => [
    'id' => 1,
    'title' => 'Post 1',
    'comments' => [
        [
            'post_id' => 1,
            'author_id' => 1,
            'text' => 'bla bla bla'
        ],
        [
            'post_id' => 1,
            'author_id' => 2,
            'text' => 'du du du'
        ]
    ] 
]

но я хочу перед выводом преобразовать масссив comments. Делаю например так:

$post = Post::with('comments')->findOrFail($id);
$post->comments = [
        [
            'post_id' => 1,
            'author_id' => 1,
            'text' => 'my my my'
        ],
        [
            'post_id' => 1,
            'author_id' => 2,
            'text' => 'you you you'
        ]
]

return response()
        ->json([
            'post' => $post
        ])

или так:

$post = Post::findOrFail($id);
$post->comments = [
        [
            'post_id' => 1,
            'author_id' => 1,
            'text' => 'my my my'
        ],
        [
            'post_id' => 1,
            'author_id' => 2,
            'text' => 'you you you'
        ]
]

return response()
        ->json([
           'post' => $post
     ])

или так:

$post = Post::with('comments')->findOrFail($id);
$post->fill(['comments' => [
        [
            'post_id' => 1,
            'author_id' => 1,
            'text' => 'my my my'
        ],
        [
            'post_id' => 1,
            'author_id' => 2,
            'text' => 'you you you'
        ]
]]);

return response()
        ->json([
            'post' => $post
        ])

ничего не меняется. При выводе лара перебирает связь модели и перебивает внесенные вручную изменения в comments.

Подскажите, как можно внести изменения в вывод связанных данных.

KarmaBot
@KarmaBot
Mar 09 2017 18:20
@prog-man, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Arsen Soroka
@arsen-s
Mar 09 2017 18:28
@prog-man юзай фрактал, он решает проблему переобразование данных
Artur Gafurov
@assurrussa
Mar 09 2017 18:31
@prog-man если в ручную, то самый прямой способ это $post->setRelation(relation, data) вроде так.
prog-man
@prog-man
Mar 09 2017 18:41
@arsen-s

юзай фрактал

это что?

@prog-man для API это must have
prog-man
@prog-man
Mar 09 2017 18:44
@arsen-s понял, спасибо.
@assurrussa спасибо, работает
Victor Atsuta
@victoratsuta
Mar 09 2017 19:00
ктонибуть пользовался mailgan а ларавеле?
Ivan
@Hunternnm
Mar 09 2017 19:00
@victoratsuta может сразу вопрос?
Victor Atsuta
@victoratsuta
Mar 09 2017 19:10
я разрабатываю проект на лок сервере(опен сервер), тестирую коробочную функцию reset password, а она не работаала, так вот я решил настроить mailgun так как это api и работает быстрее и надежнее чем стандартный smtp сервер. При отправки на почту письма с ссылкой на изменение пароля, ларавель говорит что она отправлена, но ничего не приходит.
blob
Я использовал типо стандартный мэилгановский домен для привязки сервера, тот что active, и мне вообще интересно так вообще делать можно.
вот что в логах мэилгана по последней попытки
Failed: postmaster@sandbox983487ecdec74d6384a95d121dddf04a.mailgun.orgvovan.kurnov@mail.ru 'Reset Password' Server response: 550 550 5.7.1 This message was not accepted due to domain owner DMARC policy (RFC 7489) https://help.mail.ru/mail-help/postmaster/dmarc
Dmitry
@DmitryChere
Mar 09 2017 21:41
@Hunternnm сначала на index обращаюсь, потом на dev
MD
@md670
Mar 09 2017 23:03
Доброй ночи. Вопрос из разряда дно. Писать авторизацию админ панели с нуля лень, можно как-то стандартную авторизацию, регистрацию без особых заморочек переделать под бэкенд? Соответственно нужно изменить urlы в роутах, может что еще.
KarmaBot
@KarmaBot
Mar 09 2017 23:03
@md670, привет =)
isaiddestroy
@isaiddestroy
Mar 09 2017 23:47
Сделай роли у пользователей, да запихни проверку ролей в middleware для админки
Я, конечно, тот ещё быдлокодер, но как вариант - вполне используемая схема