2016-01-04 5 views
0

Я изучаю использование рамки Laravel.Логика шаблона репозитория laravel

Я столкнулся с репозиториями, сказал в нескольких местах, что является хорошей практикой развития.

Я нашел несколько пакетов, которые помогают реализовать эту практику в Laravel, но пропустили некоторые функции, но я думаю, что не очень хорошо разбираюсь в логике и ее преимуществах.

Учитывая, изучая эту часть, я создал пакет, который показывает, как думать, что это реализация, но у меня все еще много вопросов.

https://github.com/guilhermegonzaga/repository

Ex:

Скоупса и отношений должны быть переданы в хранилище, или хранятся в модели?

Как реализовать функции типа "increment(), decrement()" в репозитории? или это правильно назвать их на контроллере?

$model = $repository->find($id); 
$model->increment(); 

Спасибо

+0

Что вы хотите достичь с помощью 'инкремента/decrement' методы? –

+0

Пожалуйста, проверьте «[Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask)" –

+0

Например, когда отображается продукт, увеличьте столбец представления в моей модели. Это создает связь моей модели с контроллером, и цель репозитория заключается в отпаривании. –

ответ

0

Вы должны иметь отношения, установленные в модели:

https://laravel.com/docs/5.1/eloquent-relationships

Когда вы говорите с моделью внутри репозитория вы можете извлечь информацию о взаимоотношениях если нужно. Приращение и декремент должны выполняться в репозитории.

Проверить эту статью быстро, чтобы получить лучшее занижение того, что вы пытаетесь достичь, используя шаблон репозитория:

http://culttt.com/2014/09/08/benefits-using-repositories/

+0

Спасибо. Области также должны быть перенесены в репозиторий? –

+0

Я не много сделал с областями, но с быстрым взглядом кажется, что вам не хотелось бы делать это на уровне модели, как правило, вы должны попробовать и отделить свой модальный от репозитория, а также развязать свой сервисный уровень с помощью репозиторий. –