Laravel使用一个控制器的多个模块

时间:2015-05-20 09:03:24

标签: laravel-5

现在我创建了很少的模块,如产品,销售,类别。我发现他们实际上使用相同的功能和类似的过程。例如,Controller中的update():

分类

public function update($id)
{
        $instance = Category::findOrFail($id);

        $instance->fill(Input::all())->save();
}

产品

public function update($id)
{
        $instance = Product::findOrFail($id);

        $instance->fill(Input::all())->save();
}

如何通过使模型动态来将它连接到BaseController?

1 个答案:

答案 0 :(得分:1)

这样的事情:

abstract class ResourceController extends BaseController
{
    protected $entity;

    public function __construct(Model $entity){ //or Eloquent, depending on your import alias

        $this->entity = $entity;
    }


    public function update($id)
    {
        $instance = $this->entity->findOrFail( $id );

        $instance->fill( Input::all() )->save();
    }

}



class ProductController extends ResourceController{
    public function __construct(Product $entity){
        parent::__construct($entity);
    }
}

class CategoryController extends ResourceController{
    public function __construct(Category $entity){
        parent::__construct($entity);
    }
}