Задать вопрос
  • Как сделать исключение по многомерному ассоциативному массиву?

    Denormalization
    @Denormalization
    Forge0100:
    >Call to undefined method Illuminate\\\\Database\\\\Eloquent\\\\Collection::present()
    Правильно. У коллекции нету такого метода. Его нужно вызывать конкретно на модели.
    Можно добавить в Controller метод present, который будет принимать коллекцию, проходится по ней и на каждой модели вызывать present()->toArray().
    Или вообще написать свой хелпер except который будет принимать коллекцию, и фильтровать ее.

    По другому не решить.
  • Как сделать исключение по многомерному ассоциативному массиву?

    Denormalization
    @Denormalization
    Forge0100:
    >illuminate/support: ~5.0
    Он поддерживает L5.

    Там же есть пример как его использовать, что непонятно?
    Просто делаем класс UserPresenter с методом toArray() и в нем пишем:
    public function toArray()
    {
    return array_except($this->entity->toArray(), ['activated', 'activation_code']);
    }
    И потом вызываем его $user->present()->toArray().

    Если нужно вообще без лишних телодвижений, то просто через переменную $hidden в модели скрыть нужные поля и всё.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: можно. Значит топики удалили :) или как-то не так создавали.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: blade это измененный Twig. Можно его не использовать, но с ним всё намного проще.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: там менюшка My Laracasts, и выдающий список, где можно выбрать My Questions
  • Cтоит ли переходить на Laravel 5?

    Denormalization
    @Denormalization
    4.2 уже отжил своё. И если проект долгоживущий, и планируется его дальнейшее развитие, то стоит потратить пару дней чтобы перевести его на 5.1, так как чем дальше, тем труднее будет его поддерживать.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: на Yii возможно и быстрее создать простенький блог, но когда дело пойдет дальше, то всё будет на много хуже :)
    Русский форум по laravel мертв давно уже. Вопросы лучше задавать именно на laracasts/discuss, там просто нужно разобраться в дизайне.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: Так тем более, если разработка идет из разных мест, то удобнее использовать Homestead + пушить на сервер гитом. Таким образом везде будет одинаковое окружение и актуальные исходники. В случае же если что-то поломается, то всё можно будет быстро починить. Нужно сразу привыкать работать правильно.

    В laravel нету формбилдера. Он не нужен просто. Возможно есть какие-то сторонние аналоги, но я такие не испольую. Проще самому набросать роут + контроллер + пару вьюх, чем разбираться с тем, что там нагенерил скафолдинг.

    PS
    Нашел https://github.com/laralib/l5scaffold такое. Сам не пользовался. Можешь попробовать на свой страх и риск.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: не нужно смущаться. Он настраивается 1 раз, и работает без проблем. Работаешь локально, затем пушишь на сервер и получаешь работающий продукт.
  • Best practices при написании приложений на Laravel?

    Denormalization
    @Denormalization
    Muhammad: т.е? Просто настраиваю sqlite :memory: и всё.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: Ставишь локально laravel.com/docs/5.1/homestead и работаешь локально.
    Если нужно залить на сервер, то пушишь и всё. Как настроить репозиторий на сервере я написал выше.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: не так. Проект лежить локально в гите. Туда же комитися. Когда нужно он просто пушится на сервер и там автоматически разворачивается. Работать напрямую на сервер - моветон.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: причем тут это? Я имею ввиду что работать с проектом нужно локально. А куда его пушить - это личный выбор.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: проект надо локально хранить.

    Если совсем просто, то:
    - Настраиваем на сервере репозиторий (git init --bare)
    - Настраиваем хук post-receive
    - Добавляем локально этот репозиторий (git remote add vps user@host:~/path.git
    - Комитим локально
    - Пушим на сервер (git push vps branch)

    toroid.org/ams/git-website-howto тут можно посмотреть с примерами.
  • Best practices при написании приложений на Laravel?

    Denormalization
    @Denormalization
    Muhammad: валидировать, как я писал выше, должен FormRequest класс. Я дал ссылку как это правильно делать.
    Таким образом в $request уже будут валидные данные, которые можно просто передавать в сервис регистрации.

    public function postCreate(RegisterUserRequest $request)
    {
    $user = $this->userRegistration->register($request->all());
    return __ возвращаем ответ __;
    }

    Для исключений есть отдельная папка app/Exceptions, но хранить их можно где угодно. Всё зависит от структуры проекта.

    Я обычно переопределяю метод render в app/Exceptions/Handler.php и обрабатываю все ошибки так, как мне это нужно.
    Таким образом у меня чистые контроллеры, без тысячи try/catch блоков.
  • Laravel ошибка 500?

    Denormalization
    @Denormalization
    Valeriy Donika: не понял вопроса :)

    Если речь про то, что папки vendor нету в git, то все верно, её там и не должно быть.
    Когда проект пушится на сервер, нужно просто сделать composer install, чтобы скачать нужные зависимости.
    Чтобы все работало как надо, файл composer.lock должен быть в гите, тогда на сервер поставятся именно те зависимости, которые у вас стоят локально.
  • Best practices при написании приложений на Laravel?

    Denormalization
    @Denormalization
    Muhammad: В модели можно сделать метод register, который будет просто создавать юзера. Но при регистрации обычно нужно делать еще много дополнительных телодвижений, которые не должны быть в модели.
  • Best practices при написании приложений на Laravel?

    Denormalization
    @Denormalization
    Muhammad: просто если мне потребуется сделать регистрацию юзера не из контроллера, а например из админки, то мне не придется дублировать весь этот код, а просто вызвать метод у сервиса.

    Делать метод register в модели не правильно, по идеалогии Laravel. Для этого нужно выделять отдельный сервис\job
  • Best practices при написании приложений на Laravel?

    Denormalization
    @Denormalization
    Muhammad: Я обычно делаю отдельный сервис для регистрации. Например App\Services\UserRegistration, который занимается всем связанным с регистрацией (например создание дополнительных полей в БД, активация юзера, создание сессии и т.д. В общем все те вещи, которые нужно сделать во время регистрации.). UserRegistration это просто отдельный класс с методом register, который принимает данные для регистрации.
    Так же он кидает событие UserRegistered, которое уходит в очередь и затем обрабатывается.

    В обработчике события можно делать те вещи, которые не нужно делать непосредственно при регистрации.
    Например отправка Welcome емайла, запись в логи, нотификация админу и т.д.