2014-09-30 70 views
0

我開發一個API,並在控制器中indexstoreshowupdatedestroy方法是,除了正在使用的模式都是一樣的。設計模式與不同的情況下重用代碼

你將如何實現這一點?

我在考慮創建這些方法的ActionRepository,並以某種方式解析模型。我不知道我怎麼能達到這個模型雖然..

真的會很感激這方面的一些反饋;)!

+2

BaseController與方法,並注入到控制器擴展它的模型/存儲庫 - 從我的頭頂。 – 2014-09-30 14:30:49

+0

它是一個抽象類還是你的意思,你能提供一個簡單的例子嗎?將不勝感激:)! @JarekTkaczyk – guidsen 2014-09-30 15:39:12

回答

2

你可以這樣做:

abstract class BaseController extends LaravelController { 
    protected $repository; // or $model or whatever you need 

    public function index() { // your logic } 
    public function show($id) { 
    // your logic here, for example 
    return $this->repository->find($id); 
    // or 
    return $this->model->find($id); 
    } 
    public function create() { // your logic } 
    public function store() { // your logic } 
    public function edit($id) { // your logic } 
    public function update($id) { // your logic } 
    public function destroy($id) { // your logic } 
} 

class SomeSolidController extends BaseController { 
    public function __construct(SomeRepositoryInterface $repository) 
    { 
    $this->repository = $repository; 
    } 
} 
+0

我將如何使用Laravel 5中的Request類?導致在每個方法中,我必須注入另一個Request對象。 例如,從'Eventcontroller'中,我需要在我的'Basecontroller'的更新方法中使用'UpdateEventRequest'。 – guidsen 2014-09-30 23:09:36

+0

然後調整它,我顯示的方式是基本的L4控制器。在Laravel5中,由於方法注入和其他很酷的功能,您擁有更多的功能。 – 2014-09-30 23:14:05

+0

如何將特定的Request類注入到我的BaseController方法中的任何建議或提示? – guidsen 2014-09-30 23:16:28

相關問題