Прикрутил, работает.
Но все AJAX урлы теперь вида: md.dev/en/delete/25?_url=%2Fdelete%2F25
Хелпер url() бесполезен а в проекте десятки resource контроллеров и их всех теперь придется назвать. о_О
Laravel...
А как там работает генерация роутов из хелпера url() после всех извращений?
Кстати, не завелась потому, что:
UnsupportedLocaleException in LaravelLocalization.php line 119:
Laravel default locale is not in the supportedLocales array.
xmoonlight: а если сам item отдельно живет и не должен знать к какому пользователю оно принадлежит? Тогда выходит, что нужно туда передавать саму запись. А куда она привязана по id не важно.
Благодарю за развернутый и подробный ответ! Но мы снова пришли к тому, что фотография лайкает юзера: $photo->like($user);. =(
Возможно, когда сам пишешь - понимаешь о чем речь, но прочитать такое сходу можно так.
Давайте '1С стайл': ФОТО.ЛАЙКНУТЬ(ПОЛЬЗОВАТЕЛЬ). А это значит, что подразумеваешь нечто иное в методе увидеть.
И да, сам лайк не должен являться сущностью, это связь, но часто он выполняет еще побочные действия (даже если делегирует чему-либо) например:
посмотреть, а лайкнул ли этот юзер уже эту фото?
а может ли он это делать? (может проверяться до)
а если лайнкул поставить дизлайк?
Алексей Уколов: LikesManager запутает ситуацию.
В код ненужно заходить, чтобы понять что он делает. С этим и связан вопрос поста. $like->save() коротко и лаконично, но, к сожалению пострадает наглядность (к примеру придется искать где $like был установлен и какого рода там объект, и объект ли?).
Мне понравился вариант Иван , но непонятно ГДЕ происходит само событие?
Доктрин я видел, но где сказано что она эталон? Видел в проектах как ее выпиливают (уже прикрученную)
Алексей Уколов: Сколько людей столько мнений =) Да, пример вышел был сделан, чтобы внести больше прозрачности, но не вышло. Приведу пример другой: в Magento есть коллекции, и часто пишут для ясности и прозрачности метод ->load(), хотя коллекция уже загружена. Так и тут: (new Like())->setUser($user)->setPhoto($photo); мы установили лайку (зачем-то, с точки зрения чтения) юзера и фото. А что дальше должно произойти?
Пожалуй, да. Отличный конструктор получается. Но тогда выходит, что сам экшн спрятан и не понятно что происходит. Установил пользователя, фото. Возможно затем стоит вызвать к примеру ->save() или ->apply() для прозрачности?
Но все AJAX урлы теперь вида: md.dev/en/delete/25?_url=%2Fdelete%2F25
Хелпер url() бесполезен а в проекте десятки resource контроллеров и их всех теперь придется назвать. о_О
Laravel...